@liuzengwei/element-ui 2.15.5-xn.47 → 2.15.5-xn.48
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.
- package/lib/affix.js +2 -2
- package/lib/autocomplete.js +2 -2
- package/lib/avatar.js +2 -2
- package/lib/calendar.js +2 -2
- package/lib/carousel.js +2 -2
- package/lib/cascader-panel.js +2 -2
- package/lib/cascader.js +8 -8
- package/lib/col.js +2 -2
- package/lib/color-picker.js +2 -2
- package/lib/date-picker.js +5 -5
- package/lib/descriptions-item.js +2 -2
- package/lib/descriptions.js +10 -10
- package/lib/dialog.js +2 -2
- package/lib/drawer.js +2 -2
- package/lib/dropdown.js +4 -4
- package/lib/element-ui.common.js +318 -18
- package/lib/image.js +5 -5
- package/lib/index.js +1 -1
- package/lib/infinite-scroll.js +10 -10
- package/lib/loading.js +2 -2
- package/lib/message-box.js +4 -4
- package/lib/message.js +5 -5
- package/lib/notification.js +2 -2
- package/lib/popconfirm.js +2 -2
- package/lib/rate.js +2 -2
- package/lib/row.js +2 -2
- package/lib/scrollbar.js +10 -10
- package/lib/segmented.js +523 -0
- package/lib/select.js +4 -4
- package/lib/submenu.js +2 -2
- package/lib/table-column.js +2 -2
- package/lib/table.js +8 -8
- package/lib/tabs.js +2 -2
- package/lib/tag.js +2 -2
- package/lib/theme-chalk/index.css +1 -1
- package/lib/theme-chalk/segmented.css +1 -0
- package/lib/time-picker.js +2 -2
- package/lib/time-select.js +2 -2
- package/lib/timeline.js +2 -2
- package/lib/tooltip.js +2 -2
- package/lib/transfer.js +2 -2
- package/lib/trigger.js +8 -8
- package/package.json +1 -1
- package/packages/segmented/index.js +8 -0
- package/packages/segmented/src/main.vue +183 -0
- package/packages/theme-chalk/lib/index.css +1 -1
- package/packages/theme-chalk/lib/segmented.css +1 -0
- package/packages/theme-chalk/src/index.scss +1 -0
- package/packages/theme-chalk/src/segmented.scss +165 -0
- package/src/index.js +5 -2
- package/types/element-ui.d.ts +4 -0
- package/types/segmented.d.ts +51 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.el-segmented{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding:0;background-color:transparent;border-radius:2px;position:relative}.el-segmented.is-disabled{opacity:.6;cursor:not-allowed}.el-segmented--block{width:100%}.el-segmented--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:auto}.el-segmented--large .el-segmented__item{padding:12px 15px;font-size:14px}.el-segmented--small .el-segmented__item{padding:8px 12px;font-size:13px}.el-segmented__item{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:10px;cursor:pointer;border-radius:0;-webkit-transition:all .2s cubic-bezier(.645,.045,.355,1);transition:all .2s cubic-bezier(.645,.045,.355,1);font-size:14px;line-height:20px;color:#86909C;position:relative;background-color:#FFF;border:1px solid #F2F2F2}.el-segmented__item:not(:first-child){border-left:none}.el-segmented__item:first-child{border-radius:2px 0 0 2px}.el-segmented__item:last-child{border-radius:0 2px 2px 0}.el-segmented__item:first-child:last-child{border-radius:2px}.el-segmented__item:hover{background-color:rgba(72,133,248,.1)}.el-segmented__item.is-selected{background-color:#4885F8;color:#FFF;border-color:#4885F8;z-index:1}.el-segmented__item.is-selected:hover{background-color:#4885F8}.el-segmented__item.is-disabled{cursor:not-allowed;color:#86909C;background-color:#F5F7FA}.el-segmented__item.is-disabled:hover{background-color:#F5F7FA}.el-segmented__item.is-disabled.is-selected{background-color:#F5F7FA;color:#86909C;border-color:#F2F2F2}.el-segmented__item-input{position:absolute;opacity:0;pointer-events:none}.el-segmented__item-label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%}.el-segmented.el-segmented--block .el-segmented__item{min-width:0}.el-segmented.el-segmented--stretch{width:100%;background-color:#FFF;border:1px solid #F2F2F2;border-radius:2px}.el-segmented.el-segmented--stretch .el-segmented__item{-webkit-box-flex:0;-ms-flex:none;flex:none;border:none;border-right:1px solid #F2F2F2}.el-segmented.el-segmented--vertical{width:auto}.el-segmented.el-segmented--vertical .el-segmented__item{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;width:100%}.el-segmented.el-segmented--vertical .el-segmented__item:not(:first-child){border-top:none;border-left:1px solid #F2F2F2}.el-segmented.el-segmented--vertical .el-segmented__item:first-child{border-radius:2px 2px 0 0}.el-segmented.el-segmented--vertical .el-segmented__item:last-child{border-radius:0 0 2px 2px}.el-segmented.el-segmented--vertical .el-segmented__item:first-child:last-child{border-radius:2px}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
@charset "UTF-8";
|
|
2
|
+
@import "common/var";
|
|
3
|
+
@import "mixins/mixins";
|
|
4
|
+
@import "mixins/utils";
|
|
5
|
+
|
|
6
|
+
@include b(segmented) {
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
padding: 0;
|
|
9
|
+
background-color: transparent;
|
|
10
|
+
border-radius: $--border-radius-base;
|
|
11
|
+
position: relative;
|
|
12
|
+
|
|
13
|
+
@include when(disabled) {
|
|
14
|
+
opacity: 0.6;
|
|
15
|
+
cursor: not-allowed;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@include m(block) {
|
|
19
|
+
width: 100%;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@include m(vertical) {
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
width: auto;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@include m(large) {
|
|
28
|
+
@include e(item) {
|
|
29
|
+
padding: 12px 15px;
|
|
30
|
+
font-size: $--font-size-base;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@include m(small) {
|
|
35
|
+
@include e(item) {
|
|
36
|
+
padding: 8px 12px;
|
|
37
|
+
font-size: $--font-size-small;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@include e(item) {
|
|
42
|
+
flex: 1;
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
padding: 10px;
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
border-radius: 0;
|
|
49
|
+
transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
50
|
+
font-size: 14px;
|
|
51
|
+
line-height: 20px;
|
|
52
|
+
color: #86909C;
|
|
53
|
+
position: relative;
|
|
54
|
+
background-color: $--color-white;
|
|
55
|
+
border: 1px solid #F2F2F2;
|
|
56
|
+
|
|
57
|
+
&:not(:first-child) {
|
|
58
|
+
border-left: none;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&:first-child {
|
|
62
|
+
border-radius: 2px 0 0 2px;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&:last-child {
|
|
66
|
+
border-radius: 0 2px 2px 0;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&:first-child:last-child {
|
|
70
|
+
border-radius: 2px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&:hover {
|
|
74
|
+
background-color: rgba($--color-primary, 0.1);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@include when(selected) {
|
|
78
|
+
background-color: $--color-primary;
|
|
79
|
+
color: $--color-white;
|
|
80
|
+
border-color: $--color-primary;
|
|
81
|
+
z-index: 1;
|
|
82
|
+
|
|
83
|
+
&:hover {
|
|
84
|
+
background-color: $--color-primary;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@include when(disabled) {
|
|
89
|
+
cursor: not-allowed;
|
|
90
|
+
color: $--color-text-placeholder;
|
|
91
|
+
background-color: $--disabled-fill-base;
|
|
92
|
+
|
|
93
|
+
&:hover {
|
|
94
|
+
background-color: $--disabled-fill-base;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@include when(selected) {
|
|
98
|
+
background-color: $--disabled-fill-base;
|
|
99
|
+
color: $--color-text-placeholder;
|
|
100
|
+
border-color: #F2F2F2;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@include e(item-input) {
|
|
106
|
+
position: absolute;
|
|
107
|
+
opacity: 0;
|
|
108
|
+
pointer-events: none;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
@include e(item-label) {
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: center;
|
|
114
|
+
justify-content: center;
|
|
115
|
+
width: 100%;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Block modifier
|
|
119
|
+
&.el-segmented--block {
|
|
120
|
+
.el-segmented__item {
|
|
121
|
+
min-width: 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Stretch modifier
|
|
126
|
+
&.el-segmented--stretch {
|
|
127
|
+
width: 100%;
|
|
128
|
+
background-color: $--color-white;
|
|
129
|
+
border: 1px solid #F2F2F2;
|
|
130
|
+
border-radius: 2px;
|
|
131
|
+
|
|
132
|
+
.el-segmented__item {
|
|
133
|
+
flex: none;
|
|
134
|
+
border: none;
|
|
135
|
+
border-right: 1px solid #F2F2F2;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Vertical modifier
|
|
140
|
+
&.el-segmented--vertical {
|
|
141
|
+
width: auto;
|
|
142
|
+
|
|
143
|
+
.el-segmented__item {
|
|
144
|
+
justify-content: flex-start;
|
|
145
|
+
width: 100%;
|
|
146
|
+
|
|
147
|
+
&:not(:first-child) {
|
|
148
|
+
border-top: none;
|
|
149
|
+
border-left: 1px solid #F2F2F2;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
&:first-child {
|
|
153
|
+
border-radius: 2px 2px 0 0;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
&:last-child {
|
|
157
|
+
border-radius: 0 0 2px 2px;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
&:first-child:last-child {
|
|
161
|
+
border-radius: 2px;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
package/src/index.js
CHANGED
|
@@ -97,6 +97,7 @@ import SelectableTagGroup from '../packages/selectable-tag-group/index.js';
|
|
|
97
97
|
import AreaPicker from '../packages/area-picker/index.js';
|
|
98
98
|
import Trigger from '../packages/trigger/index.js';
|
|
99
99
|
import LazyLoad from '../packages/lazy-load/index.js';
|
|
100
|
+
import Segmented from '../packages/segmented/index.js';
|
|
100
101
|
import locale from 'element-ui/src/locale';
|
|
101
102
|
import CollapseTransition from 'element-ui/src/transitions/collapse-transition';
|
|
102
103
|
|
|
@@ -193,6 +194,7 @@ const components = [
|
|
|
193
194
|
AreaPicker,
|
|
194
195
|
Trigger,
|
|
195
196
|
LazyLoad,
|
|
197
|
+
Segmented,
|
|
196
198
|
CollapseTransition
|
|
197
199
|
];
|
|
198
200
|
|
|
@@ -228,7 +230,7 @@ if (typeof window !== 'undefined' && window.Vue) {
|
|
|
228
230
|
}
|
|
229
231
|
|
|
230
232
|
export default {
|
|
231
|
-
version: '2.15.5-xn.
|
|
233
|
+
version: '2.15.5-xn.48',
|
|
232
234
|
locale: locale.use,
|
|
233
235
|
i18n: locale.i18n,
|
|
234
236
|
install,
|
|
@@ -329,5 +331,6 @@ export default {
|
|
|
329
331
|
SelectableTagGroup,
|
|
330
332
|
AreaPicker,
|
|
331
333
|
Trigger,
|
|
332
|
-
LazyLoad
|
|
334
|
+
LazyLoad,
|
|
335
|
+
Segmented
|
|
333
336
|
};
|
package/types/element-ui.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
import { ElTrigger } from './trigger'
|
|
5
5
|
import { ElLazyLoad } from './lazy-load'
|
|
6
|
+
import { ElSegmented } from './segmented'
|
|
6
7
|
|
|
7
8
|
export class SelectableTag extends ElSelectableTag {}
|
|
8
9
|
|
|
@@ -14,3 +15,6 @@ export class Trigger extends ElTrigger {}
|
|
|
14
15
|
|
|
15
16
|
/** LazyLoad Component */
|
|
16
17
|
export class LazyLoad extends ElLazyLoad {}
|
|
18
|
+
|
|
19
|
+
/** Segmented Component */
|
|
20
|
+
export class Segmented extends ElSegmented {}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ElementUIComponent, ElementUIComponentSize } from './component'
|
|
2
|
+
|
|
3
|
+
export type SegmentedOption = Record<string, any> | string | number | boolean
|
|
4
|
+
|
|
5
|
+
export interface SegmentedProps {
|
|
6
|
+
/** 指定选项值为选项对象的某个属性值 */
|
|
7
|
+
value?: string
|
|
8
|
+
/** 指定选项标签为选项对象的某个属性值 */
|
|
9
|
+
label?: string
|
|
10
|
+
/** 指定选项的禁用为选项对象的某个属性值 */
|
|
11
|
+
disabled?: string
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** Segmented Component */
|
|
15
|
+
export declare class ElSegmented extends ElementUIComponent {
|
|
16
|
+
/** 绑定值 */
|
|
17
|
+
value: string | number | boolean
|
|
18
|
+
|
|
19
|
+
/** 选项数据 */
|
|
20
|
+
options: SegmentedOption[]
|
|
21
|
+
|
|
22
|
+
/** 配置选项 */
|
|
23
|
+
props: SegmentedProps
|
|
24
|
+
|
|
25
|
+
/** 尺寸 */
|
|
26
|
+
size: ElementUIComponentSize
|
|
27
|
+
|
|
28
|
+
/** 是否适应父元素宽度 */
|
|
29
|
+
block: boolean
|
|
30
|
+
|
|
31
|
+
/** 是否横向撑满容器但保持item固定宽度 */
|
|
32
|
+
stretch: boolean
|
|
33
|
+
|
|
34
|
+
/** 是否禁用 */
|
|
35
|
+
disabled: boolean
|
|
36
|
+
|
|
37
|
+
/** 是否触发表单验证 */
|
|
38
|
+
validateEvent: boolean
|
|
39
|
+
|
|
40
|
+
/** 原生 name 属性 */
|
|
41
|
+
name: string
|
|
42
|
+
|
|
43
|
+
/** 原生 id 属性 */
|
|
44
|
+
id: string
|
|
45
|
+
|
|
46
|
+
/** 原生 aria-label 属性 */
|
|
47
|
+
ariaLabel: string
|
|
48
|
+
|
|
49
|
+
/** 显示方向 */
|
|
50
|
+
direction: 'horizontal' | 'vertical'
|
|
51
|
+
}
|