@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}
|
package/lib/time-picker.js
CHANGED
|
@@ -210,7 +210,7 @@ module.exports = require("@liuzengwei/element-ui/lib/utils/clickoutside");
|
|
|
210
210
|
|
|
211
211
|
/***/ }),
|
|
212
212
|
|
|
213
|
-
/***/
|
|
213
|
+
/***/ 17:
|
|
214
214
|
/***/ (function(module, exports) {
|
|
215
215
|
|
|
216
216
|
module.exports = require("@liuzengwei/element-ui/lib/scrollbar");
|
|
@@ -2131,7 +2131,7 @@ render._withStripped = true
|
|
|
2131
2131
|
var date_util_ = __webpack_require__(1);
|
|
2132
2132
|
|
|
2133
2133
|
// EXTERNAL MODULE: external "@liuzengwei/element-ui/lib/scrollbar"
|
|
2134
|
-
var scrollbar_ = __webpack_require__(
|
|
2134
|
+
var scrollbar_ = __webpack_require__(17);
|
|
2135
2135
|
var scrollbar_default = /*#__PURE__*/__webpack_require__.n(scrollbar_);
|
|
2136
2136
|
|
|
2137
2137
|
// EXTERNAL MODULE: ./src/directives/repeat-click.js
|
package/lib/time-select.js
CHANGED
|
@@ -210,7 +210,7 @@ module.exports = require("@liuzengwei/element-ui/lib/utils/clickoutside");
|
|
|
210
210
|
|
|
211
211
|
/***/ }),
|
|
212
212
|
|
|
213
|
-
/***/
|
|
213
|
+
/***/ 17:
|
|
214
214
|
/***/ (function(module, exports) {
|
|
215
215
|
|
|
216
216
|
module.exports = require("@liuzengwei/element-ui/lib/scrollbar");
|
|
@@ -1496,7 +1496,7 @@ render._withStripped = true
|
|
|
1496
1496
|
// CONCATENATED MODULE: ./packages/date-picker/src/panel/time-select.vue?vue&type=template&id=51ab9320&
|
|
1497
1497
|
|
|
1498
1498
|
// EXTERNAL MODULE: external "@liuzengwei/element-ui/lib/scrollbar"
|
|
1499
|
-
var scrollbar_ = __webpack_require__(
|
|
1499
|
+
var scrollbar_ = __webpack_require__(17);
|
|
1500
1500
|
var scrollbar_default = /*#__PURE__*/__webpack_require__.n(scrollbar_);
|
|
1501
1501
|
|
|
1502
1502
|
// EXTERNAL MODULE: external "@liuzengwei/element-ui/lib/utils/scroll-into-view"
|
package/lib/timeline.js
CHANGED
|
@@ -82,7 +82,7 @@ module.exports =
|
|
|
82
82
|
/******/
|
|
83
83
|
/******/
|
|
84
84
|
/******/ // Load entry module and return exports
|
|
85
|
-
/******/ return __webpack_require__(__webpack_require__.s =
|
|
85
|
+
/******/ return __webpack_require__(__webpack_require__.s = 145);
|
|
86
86
|
/******/ })
|
|
87
87
|
/************************************************************************/
|
|
88
88
|
/******/ ({
|
|
@@ -189,7 +189,7 @@ function normalizeComponent (
|
|
|
189
189
|
|
|
190
190
|
/***/ }),
|
|
191
191
|
|
|
192
|
-
/***/
|
|
192
|
+
/***/ 145:
|
|
193
193
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
194
194
|
|
|
195
195
|
"use strict";
|
package/lib/tooltip.js
CHANGED
|
@@ -82,12 +82,12 @@ module.exports =
|
|
|
82
82
|
/******/
|
|
83
83
|
/******/
|
|
84
84
|
/******/ // Load entry module and return exports
|
|
85
|
-
/******/ return __webpack_require__(__webpack_require__.s =
|
|
85
|
+
/******/ return __webpack_require__(__webpack_require__.s = 149);
|
|
86
86
|
/******/ })
|
|
87
87
|
/************************************************************************/
|
|
88
88
|
/******/ ({
|
|
89
89
|
|
|
90
|
-
/***/
|
|
90
|
+
/***/ 149:
|
|
91
91
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
92
92
|
|
|
93
93
|
"use strict";
|
package/lib/transfer.js
CHANGED
|
@@ -203,7 +203,7 @@ module.exports = require("@liuzengwei/element-ui/lib/mixins/migrating");
|
|
|
203
203
|
|
|
204
204
|
/***/ }),
|
|
205
205
|
|
|
206
|
-
/***/
|
|
206
|
+
/***/ 16:
|
|
207
207
|
/***/ (function(module, exports) {
|
|
208
208
|
|
|
209
209
|
module.exports = require("@liuzengwei/element-ui/lib/button");
|
|
@@ -361,7 +361,7 @@ render._withStripped = true
|
|
|
361
361
|
// CONCATENATED MODULE: ./packages/transfer/src/main.vue?vue&type=template&id=5c654dd8&
|
|
362
362
|
|
|
363
363
|
// EXTERNAL MODULE: external "@liuzengwei/element-ui/lib/button"
|
|
364
|
-
var button_ = __webpack_require__(
|
|
364
|
+
var button_ = __webpack_require__(16);
|
|
365
365
|
var button_default = /*#__PURE__*/__webpack_require__.n(button_);
|
|
366
366
|
|
|
367
367
|
// EXTERNAL MODULE: external "@liuzengwei/element-ui/lib/mixins/emitter"
|
package/lib/trigger.js
CHANGED
|
@@ -187,13 +187,6 @@ function normalizeComponent (
|
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
|
|
190
|
-
/***/ }),
|
|
191
|
-
|
|
192
|
-
/***/ 13:
|
|
193
|
-
/***/ (function(module, exports) {
|
|
194
|
-
|
|
195
|
-
module.exports = require("@liuzengwei/element-ui/lib/utils/popup");
|
|
196
|
-
|
|
197
190
|
/***/ }),
|
|
198
191
|
|
|
199
192
|
/***/ 138:
|
|
@@ -687,7 +680,7 @@ var stop = function stop(e) {
|
|
|
687
680
|
|
|
688
681
|
// 动态导入 PopupManager 避免 SSR 问题
|
|
689
682
|
if (!external_vue_default.a.prototype.$isServer) {
|
|
690
|
-
var _require = __webpack_require__(
|
|
683
|
+
var _require = __webpack_require__(14),
|
|
691
684
|
PopupManager = _require.PopupManager;
|
|
692
685
|
|
|
693
686
|
this.popperJS._popper.style.zIndex = PopupManager.nextZIndex();
|
|
@@ -893,6 +886,13 @@ main.install = function (Vue) {
|
|
|
893
886
|
|
|
894
887
|
/***/ }),
|
|
895
888
|
|
|
889
|
+
/***/ 14:
|
|
890
|
+
/***/ (function(module, exports) {
|
|
891
|
+
|
|
892
|
+
module.exports = require("@liuzengwei/element-ui/lib/utils/popup");
|
|
893
|
+
|
|
894
|
+
/***/ }),
|
|
895
|
+
|
|
896
896
|
/***/ 2:
|
|
897
897
|
/***/ (function(module, exports) {
|
|
898
898
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
:class="[
|
|
4
|
+
'el-segmented',
|
|
5
|
+
{
|
|
6
|
+
'el-segmented--block': block,
|
|
7
|
+
'el-segmented--stretch': stretch,
|
|
8
|
+
'el-segmented--vertical': direction === 'vertical',
|
|
9
|
+
'is-disabled': segmentedDisabled
|
|
10
|
+
},
|
|
11
|
+
segmentedSize ? `el-segmented--${segmentedSize}` : ''
|
|
12
|
+
]"
|
|
13
|
+
role="radiogroup"
|
|
14
|
+
:aria-label="ariaLabel"
|
|
15
|
+
:id="id"
|
|
16
|
+
>
|
|
17
|
+
<div
|
|
18
|
+
v-for="(item, index) in normalizedOptions"
|
|
19
|
+
:key="getItemKey(item, index)"
|
|
20
|
+
:class="[
|
|
21
|
+
'el-segmented__item',
|
|
22
|
+
{
|
|
23
|
+
'is-selected': isItemSelected(item),
|
|
24
|
+
'is-disabled': isItemDisabled(item)
|
|
25
|
+
}
|
|
26
|
+
]"
|
|
27
|
+
@click="handleItemClick(item)"
|
|
28
|
+
>
|
|
29
|
+
<input
|
|
30
|
+
:name="name"
|
|
31
|
+
:value="getItemValue(item)"
|
|
32
|
+
:disabled="isItemDisabled(item)"
|
|
33
|
+
:checked="isItemSelected(item)"
|
|
34
|
+
type="radio"
|
|
35
|
+
class="el-segmented__item-input"
|
|
36
|
+
@change="handleChange(item)"
|
|
37
|
+
>
|
|
38
|
+
<div class="el-segmented__item-label">
|
|
39
|
+
<slot :item="item">
|
|
40
|
+
{{ getItemLabel(item) }}
|
|
41
|
+
</slot>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</template>
|
|
46
|
+
|
|
47
|
+
<script>
|
|
48
|
+
import { isObject } from 'element-ui/src/utils/types';
|
|
49
|
+
import emitter from 'element-ui/src/mixins/emitter';
|
|
50
|
+
|
|
51
|
+
export default {
|
|
52
|
+
name: 'ElSegmented',
|
|
53
|
+
|
|
54
|
+
componentName: 'ElSegmented',
|
|
55
|
+
|
|
56
|
+
mixins: [emitter],
|
|
57
|
+
|
|
58
|
+
inject: {
|
|
59
|
+
elForm: {
|
|
60
|
+
default: ''
|
|
61
|
+
},
|
|
62
|
+
elFormItem: {
|
|
63
|
+
default: ''
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
props: {
|
|
68
|
+
value: {
|
|
69
|
+
type: [String, Number, Boolean],
|
|
70
|
+
default: ''
|
|
71
|
+
},
|
|
72
|
+
options: {
|
|
73
|
+
type: Array,
|
|
74
|
+
default() {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
props: {
|
|
79
|
+
type: Object,
|
|
80
|
+
default() {
|
|
81
|
+
return {
|
|
82
|
+
value: 'value',
|
|
83
|
+
label: 'label',
|
|
84
|
+
disabled: 'disabled'
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
size: String,
|
|
89
|
+
block: {
|
|
90
|
+
type: Boolean,
|
|
91
|
+
default: false
|
|
92
|
+
},
|
|
93
|
+
stretch: {
|
|
94
|
+
type: Boolean,
|
|
95
|
+
default: false
|
|
96
|
+
},
|
|
97
|
+
disabled: {
|
|
98
|
+
type: Boolean,
|
|
99
|
+
default: false
|
|
100
|
+
},
|
|
101
|
+
validateEvent: {
|
|
102
|
+
type: Boolean,
|
|
103
|
+
default: true
|
|
104
|
+
},
|
|
105
|
+
name: String,
|
|
106
|
+
id: String,
|
|
107
|
+
ariaLabel: String,
|
|
108
|
+
direction: {
|
|
109
|
+
type: String,
|
|
110
|
+
default: 'horizontal',
|
|
111
|
+
validator(val) {
|
|
112
|
+
return ['horizontal', 'vertical'].indexOf(val) !== -1;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
computed: {
|
|
118
|
+
normalizedOptions() {
|
|
119
|
+
return this.options.map(option => {
|
|
120
|
+
if (isObject(option)) {
|
|
121
|
+
return option;
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
[this.props.value]: option,
|
|
125
|
+
[this.props.label]: option
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
segmentedSize() {
|
|
131
|
+
return this.size || (this.elFormItem || {}).elFormItemSize || (this.$ELEMENT || {}).size;
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
segmentedDisabled() {
|
|
135
|
+
return this.disabled || (this.elForm || {}).disabled;
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
methods: {
|
|
140
|
+
getItemKey(item, index) {
|
|
141
|
+
return this.getItemValue(item) || index;
|
|
142
|
+
},
|
|
143
|
+
|
|
144
|
+
getItemValue(item) {
|
|
145
|
+
return isObject(item) ? item[this.props.value] : item;
|
|
146
|
+
},
|
|
147
|
+
|
|
148
|
+
getItemLabel(item) {
|
|
149
|
+
return isObject(item) ? item[this.props.label] : item;
|
|
150
|
+
},
|
|
151
|
+
|
|
152
|
+
isItemSelected(item) {
|
|
153
|
+
return this.getItemValue(item) === this.value;
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
isItemDisabled(item) {
|
|
157
|
+
if (this.segmentedDisabled) return true;
|
|
158
|
+
return isObject(item) ? item[this.props.disabled] : false;
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
handleItemClick(item) {
|
|
162
|
+
if (this.isItemDisabled(item)) return;
|
|
163
|
+
|
|
164
|
+
const value = this.getItemValue(item);
|
|
165
|
+
if (value !== this.value) {
|
|
166
|
+
this.$emit('input', value);
|
|
167
|
+
this.$nextTick(() => {
|
|
168
|
+
this.$emit('change', value);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
handleChange(item) {
|
|
174
|
+
// 处理 input change 事件,确保表单验证等功能正常
|
|
175
|
+
if (this.validateEvent) {
|
|
176
|
+
this.$nextTick(() => {
|
|
177
|
+
this.dispatch('ElFormItem', 'el.form.change', [this.value]);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
</script>
|