xt-element-ui 2.2.0 → 2.2.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 (46) hide show
  1. package/docs/components/base/xt-date-picker.md +7 -26
  2. package/docs/components/base/xt-grid-box.md +34 -34
  3. package/docs/components/base/xt-tabs.md +51 -6
  4. package/docs/components/base/xt-text.md +20 -3
  5. package/lib/css/1.87a493be.css +1 -0
  6. package/lib/index.common.1.js +294 -0
  7. package/lib/index.common.2.js +141 -0
  8. package/lib/index.common.js +342 -492
  9. package/lib/index.css +1 -1
  10. package/lib/index.umd.1.js +294 -0
  11. package/lib/index.umd.2.js +141 -0
  12. package/lib/index.umd.js +342 -492
  13. package/lib/index.umd.min.1.js +1 -0
  14. package/lib/index.umd.min.2.js +1 -0
  15. package/lib/index.umd.min.js +1 -1
  16. package/lib/xt-date-picker/css/1.87a493be.css +1 -0
  17. package/lib/xt-date-picker/xt-date-picker.common.1.js +294 -0
  18. package/lib/xt-date-picker/xt-date-picker.common.2.js +141 -0
  19. package/lib/xt-date-picker/xt-date-picker.common.js +201 -332
  20. package/lib/xt-date-picker/xt-date-picker.css +1 -1
  21. package/lib/xt-date-picker/xt-date-picker.umd.1.js +294 -0
  22. package/lib/xt-date-picker/xt-date-picker.umd.2.js +141 -0
  23. package/lib/xt-date-picker/xt-date-picker.umd.js +201 -332
  24. package/lib/xt-date-picker/xt-date-picker.umd.min.1.js +1 -0
  25. package/lib/xt-date-picker/xt-date-picker.umd.min.2.js +1 -0
  26. package/lib/xt-date-picker/xt-date-picker.umd.min.js +1 -1
  27. package/lib/xt-tabs/xt-tabs.common.js +5 -27
  28. package/lib/xt-tabs/xt-tabs.css +1 -1
  29. package/lib/xt-tabs/xt-tabs.umd.js +5 -27
  30. package/lib/xt-tabs/xt-tabs.umd.min.js +1 -1
  31. package/lib/xt-text/xt-text.common.js +7 -4
  32. package/lib/xt-text/xt-text.umd.js +7 -4
  33. package/lib/xt-text/xt-text.umd.min.js +1 -1
  34. package/package.json +1 -1
  35. package/src/components/index.scss +3 -0
  36. package/src/components/xt-date-picker/component/Picker.vue +2 -46
  37. package/src/components/xt-date-picker/component/RangeDate.vue +4 -4
  38. package/src/components/xt-date-picker/index.js +1 -0
  39. package/src/components/xt-date-picker/index.vue +3 -23
  40. package/src/components/xt-date-picker/style/index.scss +64 -0
  41. package/src/components/xt-input/style/index.scss +1 -1
  42. package/src/components/xt-tabs/index.vue +3 -174
  43. package/src/components/xt-tabs/style/index.scss +131 -121
  44. package/src/components/xt-text/index.vue +5 -2
  45. package/src/styles/theme/index.scss +0 -1
  46. package/src/styles/theme/dark-variables.scss +0 -0
@@ -31,6 +31,7 @@
31
31
  ref="singlePicker"
32
32
  v-model="singleValue"
33
33
  size="small"
34
+ class="xt-date"
34
35
  :disabled="disabled"
35
36
  append-to-body
36
37
  :format="format"
@@ -45,6 +46,7 @@
45
46
  v-else-if="!useRangeMode && realDateType === 'quarter'"
46
47
  v-model="singleValue"
47
48
  type="quarter"
49
+ class="xt-date"
48
50
  size="small"
49
51
  :disabled="disabled"
50
52
  :placeholder="innerPlaceholder"
@@ -89,12 +91,9 @@ const NORMAL_TO_RANGE_TYPE = {
89
91
  week: 'week'
90
92
  };
91
93
 
92
- import RangeDate from './component/RangeDate.vue';
93
- import Picker from './component/Picker.vue';
94
-
95
94
  export default {
96
95
  name: 'XtDatePicker',
97
- components: { RangeDate, Picker },
96
+ components: { RangeDate: () => import( './component/RangeDate.vue'), Picker: () => import( './component/Picker.vue') },
98
97
  // 标准v-model:父组件 v-model="xxx"
99
98
  model: {
100
99
  prop: 'value',
@@ -250,22 +249,3 @@ export default {
250
249
  }
251
250
  };
252
251
  </script>
253
-
254
- <style lang="scss" scoped>
255
- .xt-date-picker-container {
256
- display: inline-block;
257
- width: 100%;
258
- }
259
-
260
- .xt-date-dimension {
261
- margin-bottom: 8px;
262
- }
263
-
264
- .xt-date-picker-wrapper {
265
- display: inline-block;
266
- }
267
-
268
- .xt-date {
269
- width: 100%;
270
- }
271
- </style>
@@ -0,0 +1,64 @@
1
+
2
+ @import '../../../styles/variables.scss';
3
+ .xt-date-picker-container {
4
+ display: inline-block;
5
+ width: 100%;
6
+
7
+ }
8
+ .xt-date .el-date-editor .el-input__inner {
9
+ background-color: var(--xt-fill-color-blank);
10
+ border-color: var(--xt-border-color);
11
+ color: var(--xt-text-color-regular);
12
+ font-size: var(--xt-font-size-base, 14px);
13
+ border-radius: var(--xt-border-radius-small, 4px);
14
+ height: var(--xt-input-height);
15
+ line-height: var(--xt-input-height);
16
+ padding: 0 15px;
17
+ }
18
+ .xt-date-dimension {
19
+ margin-bottom: 8px;
20
+ }
21
+
22
+ .xt-date-picker-wrapper {
23
+ display: inline-block;
24
+ }
25
+
26
+
27
+
28
+
29
+ .date-picker {
30
+ .quarter-panel {
31
+ padding: 10px;
32
+ }
33
+
34
+ .quarter-header {
35
+ display: flex;
36
+ align-items: center;
37
+ justify-content: space-between;
38
+ margin-bottom: 10px;
39
+ }
40
+
41
+ .quarter-list {
42
+ display: grid;
43
+ grid-template-columns: repeat(2, 1fr);
44
+ gap: 8px;
45
+ }
46
+
47
+ .quarter-item {
48
+ text-align: center;
49
+ padding: 8px 0;
50
+ border: 1px solid #e4e7ed;
51
+ border-radius: 4px;
52
+ cursor: pointer;
53
+ }
54
+
55
+ .quarter-item.active {
56
+ background: #409eff;
57
+ color: #fff;
58
+ border-color: #409eff;
59
+ }
60
+
61
+ ::v-deep .base-date-popper {
62
+ border-radius: 4px;
63
+ }
64
+ }
@@ -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>
@@ -3,155 +3,165 @@
3
3
  .xt-tabs {
4
4
  display: flex;
5
5
  flex-direction: column;
6
- }
7
-
8
- .xt-tabs--left,
9
- .xt-tabs--right {
10
- flex-direction: row;
6
+
7
+ &--top, &--bottom {
8
+ flex-direction: column;
9
+ .xt-tabs__header {
10
+ width: 100%;
11
+ }
12
+ }
13
+
14
+ &--left, &--right {
15
+ flex-direction: row;
16
+ .xt-tabs__header {
17
+ flex-direction: column;
18
+ width: auto;
19
+ }
20
+ .xt-tabs__nav {
21
+ flex-direction: column;
22
+ }
23
+ .xt-tabs__nav-indicator {
24
+ width: 2px;
25
+ height: auto;
26
+ }
27
+ .xt-tabs__content {
28
+ border-left: 1px solid #dcdfe6;
29
+ border-top: none;
30
+ }
31
+ &--right .xt-tabs__content {
32
+ border-left: none;
33
+ border-right: 1px solid #dcdfe6;
34
+ }
35
+ }
36
+
37
+ &--top .xt-tabs__nav-indicator {
38
+ bottom: 0;
39
+ }
40
+ &--bottom .xt-tabs__nav-indicator {
41
+ top: 0;
42
+ }
43
+ &--left .xt-tabs__nav-indicator {
44
+ right: 0;
45
+ }
46
+ &--right .xt-tabs__nav-indicator {
47
+ left: 0;
48
+ }
49
+
50
+ &--card {
51
+ .xt-tabs__header {
52
+ margin-bottom: -1px;
53
+ }
54
+
55
+ .xt-tabs__nav-item {
56
+ border: 1px solid transparent;
57
+ border-bottom: none;
58
+ background: #f5f7fa;
59
+
60
+ &--active {
61
+ background: #fff;
62
+ border-color: #dcdfe6;
63
+ border-bottom-color: #fff;
64
+ }
65
+ }
66
+ &--left, &--right {
67
+ .xt-tabs__nav-item {
68
+ border-bottom: 1px solid transparent;
69
+ border-right: none;
70
+ }
71
+ .xt-tabs__nav-item--active {
72
+ border-right-color: #fff;
73
+ border-bottom-color: #dcdfe6;
74
+ }
75
+ }
76
+ }
77
+
78
+ &--border-card {
79
+ border: 1px solid #dcdfe6;
80
+ border-radius: 4px;
81
+ overflow: hidden;
82
+
83
+ .xt-tabs__nav-item--active {
84
+ background: #ecf5ff;
85
+ color: #409eff;
86
+ }
87
+ }
88
+
89
+ &--editable {
90
+ .xt-tabs__close {
91
+ display: inline-block;
92
+ }
93
+ }
11
94
  }
12
95
 
13
96
  .xt-tabs__header {
14
97
  position: relative;
15
- border-bottom: 1px solid $xt-color-border-light;
16
- padding-bottom: 0;
17
- }
18
-
19
- .xt-tabs--card .xt-tabs__header {
20
- border-bottom: none;
21
- background: $xt-color-bg-secondary;
22
- padding: 4px 4px 0;
23
- border-radius: 4px 4px 0 0;
24
- }
25
-
26
- .xt-tabs--left .xt-tabs__header {
27
- border-right: 1px solid $xt-color-border-light;
28
- border-bottom: none;
29
- padding-right: 0;
30
- }
31
-
32
- .xt-tabs--right .xt-tabs__header {
33
- border-left: 1px solid $xt-color-border-light;
34
- border-bottom: none;
35
- padding-left: 0;
98
+ display: flex;
36
99
  }
37
100
 
38
101
  .xt-tabs__nav {
39
102
  display: flex;
40
- }
41
-
42
- .xt-tabs--left .xt-tabs__nav,
43
- .xt-tabs--right .xt-tabs__nav {
44
- flex-direction: column;
103
+ flex-wrap: nowrap;
45
104
  }
46
105
 
47
106
  .xt-tabs__nav-item {
48
107
  position: relative;
49
108
  padding: 12px 20px;
50
- font-size: 14px;
51
- color: $xt-color-text-secondary;
109
+ margin-right: 10px;
52
110
  cursor: pointer;
53
- transition: color 0.3s ease;
54
- }
55
-
56
- .xt-tabs--card .xt-tabs__nav-item {
57
- margin-bottom: -1px;
58
- border-radius: 4px 4px 0 0;
59
- background: transparent;
60
- border: 1px solid transparent;
61
- }
62
-
63
- .xt-tabs--card .xt-tabs__nav-item--active {
64
- background: $xt-color-bg-primary;
65
- border-color: $xt-color-border-light;
66
- border-bottom-color: $xt-color-bg-primary;
67
- }
68
-
69
- .xt-tabs__nav-item:hover {
70
- color: $xt-color-primary;
71
- }
72
-
73
- .xt-tabs__nav-item--active {
74
- color: $xt-color-primary;
75
- font-weight: 500;
111
+ font-size: 14px;
112
+ color: #606266;
113
+ transition: all 0.3s;
114
+ white-space: nowrap;
115
+
116
+ &--active {
117
+ color: #409eff;
118
+ }
119
+
120
+ &--disabled {
121
+ cursor: not-allowed;
122
+ color: #c0c4cc;
123
+ }
124
+
125
+ &--add {
126
+ color: #909399;
127
+ font-size: 20px;
128
+ }
129
+
130
+ &:hover:not(.xt-tabs__nav-item--disabled) {
131
+ color: #409eff;
132
+ background-color: #ecf5ff;
133
+ }
76
134
  }
77
135
 
78
136
  .xt-tabs__nav-link {
79
137
  display: inline-block;
80
138
  }
81
139
 
140
+ .xt-tabs__close {
141
+ display: none;
142
+ margin-left: 8px;
143
+ font-size: 16px;
144
+ line-height: 1;
145
+ color: #909399;
146
+ vertical-align: middle;
147
+
148
+ &:hover {
149
+ color: #f56c6c;
150
+ }
151
+ }
152
+
82
153
  .xt-tabs__nav-indicator {
83
154
  position: absolute;
84
- bottom: 0;
85
155
  height: 2px;
86
- background: $xt-color-primary;
87
- transition: left 0.3s ease, width 0.3s ease;
88
- }
89
-
90
- .xt-tabs--left .xt-tabs__nav-indicator {
91
- bottom: auto;
92
- left: auto;
93
- right: 0;
94
- width: 2px;
95
- height: auto;
96
- top: 0;
97
- }
98
-
99
- .xt-tabs--right .xt-tabs__nav-indicator {
100
- bottom: auto;
101
- right: auto;
102
- left: 0;
103
- width: 2px;
104
- height: auto;
105
- top: 0;
106
- }
107
-
108
- .xt-tabs--card .xt-tabs__nav-indicator {
109
- display: none;
156
+ background-color: #409eff;
110
157
  }
111
158
 
112
159
  .xt-tabs__content {
113
160
  flex: 1;
114
- padding: 20px 0;
115
- }
116
-
117
- .xt-tabs--card .xt-tabs__content {
118
- border: 1px solid $xt-color-border-light;
119
- border-top: none;
120
- border-radius: 0 0 4px 4px;
121
- padding: 20px;
122
- }
123
-
124
- .xt-tabs--left .xt-tabs__content,
125
- .xt-tabs--right .xt-tabs__content {
126
- padding: 0 20px;
161
+ padding: 16px;
162
+ border-top: 1px solid #dcdfe6;
127
163
  }
128
164
 
129
165
  .xt-tabs__pane {
130
- animation: xt-tabs-fade-in 0.3s ease;
131
- }
132
-
133
- @keyframes xt-tabs-fade-in {
134
- from {
135
- opacity: 0;
136
- transform: translateY(10px);
137
- }
138
- to {
139
- opacity: 1;
140
- transform: translateY(0);
141
- }
142
- }
143
-
144
- .xt-tabs-fade-enter-active,
145
- .xt-tabs-fade-leave-active {
146
- transition: opacity 0.3s ease, transform 0.3s ease;
147
- }
148
-
149
- .xt-tabs-fade-enter {
150
- opacity: 0;
151
- transform: translateY(10px);
152
- }
153
-
154
- .xt-tabs-fade-leave-to {
155
- opacity: 0;
156
- transform: translateY(-10px);
166
+ min-height: 40px;
157
167
  }
@@ -14,7 +14,7 @@
14
14
  'xt-text--' + size,
15
15
  { 'xt-text--bold': bold },
16
16
  { 'xt-text--money': format === 'money' },
17
- { 'xt-text--ellipsis': ellipsis },
17
+ { 'xt-text--ellipsis': ellipsis && ellipsisRows == 1 },
18
18
  { 'xt-text--ellipsis-multiline': ellipsis && ellipsisRows > 1 }
19
19
  ]"
20
20
  :style="customStyle"
@@ -42,7 +42,7 @@
42
42
  'xt-text--' + size,
43
43
  { 'xt-text--bold': bold },
44
44
  { 'xt-text--money': format === 'money' },
45
- { 'xt-text--ellipsis': ellipsis },
45
+ { 'xt-text--ellipsis': ellipsis && ellipsisRows == 1 },
46
46
  { 'xt-text--ellipsis-multiline': ellipsis && ellipsisRows > 1 }
47
47
  ]"
48
48
  :style="customStyle"
@@ -155,6 +155,7 @@ export default {
155
155
  },
156
156
  data() {
157
157
  return {
158
+ ellipsisWidth: undefined,
158
159
  isOverflow: false
159
160
  }
160
161
  },
@@ -171,6 +172,7 @@ export default {
171
172
  }
172
173
  if (this.ellipsis && this.ellipsisRows > 1) {
173
174
  style.WebkitLineClamp = this.ellipsisRows
175
+ style.width = `${this.ellipsisWidth}px`
174
176
  }
175
177
  return style
176
178
  },
@@ -250,6 +252,7 @@ export default {
250
252
 
251
253
  if (this.ellipsisRows > 1) {
252
254
  this.isOverflow = el.scrollHeight > el.clientHeight
255
+ this.ellipsisWidth = el.clientWidth;
253
256
  } else {
254
257
  this.isOverflow = el.scrollWidth > el.clientWidth
255
258
  }
@@ -7,5 +7,4 @@
7
7
  @import './border-radius.scss';
8
8
  @import './shadows.scss';
9
9
  @import './transitions.scss';
10
- @import './dark-variables.scss';
11
10
  @import './component-variables.scss';
File without changes