zartui 2.1.23 → 2.1.25
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/es/button/index.css +1 -1
- package/es/checkbox/index.css +1 -1
- package/es/checkbox/index.less +4 -0
- package/es/index.js +1 -1
- package/es/mixins/checkbox.js +19 -7
- package/es/multiple-picker/index.css +1 -1
- package/es/multiple-picker/index.js +96 -11
- package/es/multiple-picker/index.less +58 -0
- package/es/multiple-picker/style/index.js +1 -0
- package/es/multiple-picker/style/less.js +1 -0
- package/es/style/var.less +1 -1
- package/lib/button/index.css +1 -1
- package/lib/checkbox/index.css +1 -1
- package/lib/checkbox/index.less +4 -0
- package/lib/index.css +1 -1
- package/lib/index.js +1 -1
- package/lib/mixins/checkbox.js +19 -7
- package/lib/multiple-picker/index.css +1 -1
- package/lib/multiple-picker/index.js +96 -11
- package/lib/multiple-picker/index.less +58 -0
- package/lib/multiple-picker/style/index.js +1 -0
- package/lib/multiple-picker/style/less.js +1 -0
- package/lib/style/var.less +1 -1
- package/lib/zart.js +116 -19
- package/lib/zart.min.js +3 -3
- package/package.json +1 -1
package/es/button/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.zt2-button{position:relative;display:inline-block;box-sizing:border-box;height:44px;margin:0;padding:0;font-size:16px;line-height:calc(
|
|
1
|
+
.zt2-button{position:relative;display:inline-block;box-sizing:border-box;height:44px;margin:0;padding:0;font-size:16px;line-height:calc(16px * 2 - 8px);text-align:center;border-radius:22px;cursor:pointer;-webkit-transition:opacity .2s;transition:opacity .2s;-webkit-appearance:none}.zt2-button::before{position:absolute;top:50%;left:50%;width:100%;height:100%;background-color:#000;border:inherit;border-color:#000;border-radius:inherit;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;content:' '}.zt2-button:active::before{opacity:.1}.zt2-button--disabled::before,.zt2-button--loading::before{display:none}.zt2-button--default{color:#2d4b73;background:0 0;border:1px solid rgba(45,75,115,.2)}.zt2-button--primary{color:#fff;background:-webkit-linear-gradient(135deg,#3cafff 0,#0091fa 100%);background:linear-gradient(-45deg,#3cafff 0,#0091fa 100%);border:1px solid #3caafa}.zt2-button--primary-light{color:#0091fa;background:rgba(1,144,250,.1);border:none}.zt2-button--danger{color:#fff;background:#ff5a5a;border:1px solid #ff5a5a}.zt2-button--warning{color:#fff;background:#fa8500;border:1px solid #fa8500}.zt2-button--success{color:#fff;background:#00e173;border:1px solid #00e173}.zt2-button--plain{background:0 0}.zt2-button--plain.zt2-button--primary{color:#3caafa}.zt2-button--plain.zt2-button--danger{color:#ff5a5a}.zt2-button--plain.zt2-button--warning{color:#fa8500}.zt2-button--plain.zt2-button--success{color:#00e173}.zt2-button--large{width:100%;height:50px}.zt2-button--normal{padding:0 24px;font-size:16px}.zt2-button--medium{height:36px;padding:0 16px;font-size:14px}.zt2-button--small{height:28px;padding:0 12px;font-size:14px}.zt2-button__loading{color:inherit;font-size:inherit}.zt2-button--mini{height:24px;padding:0 12px;font-size:12px}.zt2-button--mini+.zt2-button--mini{margin-left:4px}.zt2-button--block{display:block;width:100%}.zt2-button--block-inner{display:block;width:calc(100% - 2 * 16px);margin:0 16px}.zt2-button--disabled{cursor:not-allowed;opacity:.4}.zt2-button--loading{cursor:default}.zt2-button--round{border-radius:999px;padding:0}.zt2-button--round.zt2-button--mini{width:24px}.zt2-button--round.zt2-button--small{width:28px}.zt2-button--round.zt2-button--medium{width:36px}.zt2-button--round.zt2-button--normal{width:44px}.zt2-button--square{border-radius:0}.zt2-button__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:100%}.zt2-button__content::before{content:' '}.zt2-button__icon{font-size:24px}.zt2-button__icon--mini{font-size:16px}.zt2-button__icon--small{font-size:20px}.zt2-button__icon--medium{font-size:20px}.zt2-button__icon+.zt2-button__text,.zt2-button__loading+.zt2-button__text,.zt2-button__text+.zt2-button__icon,.zt2-button__text+.zt2-button__loading{margin-left:2px}.zt2-button--hairline{border-width:0}.zt2-button--hairline::after{border-color:inherit;border-radius:44px}.zt2-button--hairline.zt2-button--round::after{border-radius:999px}.zt2-button--hairline.zt2-button--square::after{border-radius:0}
|
package/es/checkbox/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.zt2-checkbox{display:-webkit-box;display:-webkit-flex;display:flex;overflow:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:12px 0}.zt2-checkbox--disabled{cursor:not-allowed}.zt2-checkbox--label-disabled{cursor:default}.zt2-checkbox--horizontal:not(:last-child){margin-right:32px}.zt2-checkbox__icon{font-size:16px;cursor:pointer;box-sizing:border-box}.zt2-checkbox__icon .zt2-icon{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:1em;height:1em;color:transparent;text-align:center;border:1px solid rgba(45,75,115,.13);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:color,border-color,background-color;transition-property:color,border-color,background-color}.zt2-checkbox__icon--round .zt2-icon{border-radius:100%}.zt2-checkbox__icon--checked .zt2-icon{color:#fff;background:#0091fa;box-shadow:inset 1px 1px 2px 0 rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.5)}.zt2-checkbox__icon--disabled{cursor:not-allowed}.zt2-checkbox__icon--disabled .zt2-icon{border:1px solid rgba(255,255,255,.5);box-shadow:-1px -1px 2px 0 #fff,0 0 3px 0 rgba(45,75,115,.2);background-image:-webkit-linear-gradient(316deg,#e1e6eb 0,#e5edf5 100%);background-image:linear-gradient(134deg,#e1e6eb 0,#e5edf5 100%)}.zt2-checkbox__icon--disabled.zt2-checkbox__icon--checked .zt2-icon{opacity:.4;background:#0091fa;color:#fff}.zt2-checkbox__label{margin-left:8px;color:#2d4b73;font-size:14px}.zt2-checkbox__label--left{margin:0 8px 0 0}.zt2-checkbox__label--disabled{color:#c8c9cc}
|
|
1
|
+
.zt2-checkbox{display:-webkit-box;display:-webkit-flex;display:flex;overflow:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:12px 0}.zt2-checkbox--disabled{cursor:not-allowed}.zt2-checkbox--label-disabled{cursor:default}.zt2-checkbox--horizontal:not(:last-child){margin-right:32px}.zt2-checkbox__icon{font-size:16px;cursor:pointer;box-sizing:border-box}.zt2-checkbox__icon .zt2-icon{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:1em;height:1em;color:transparent;text-align:center;border:1px solid rgba(45,75,115,.13);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:color,border-color,background-color;transition-property:color,border-color,background-color}.zt2-checkbox__icon .zt2-icon{border-radius:4px}.zt2-checkbox__icon--round .zt2-icon{border-radius:100%}.zt2-checkbox__icon--checked .zt2-icon{color:#fff;background:#0091fa;box-shadow:inset 1px 1px 2px 0 rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.5)}.zt2-checkbox__icon--disabled{cursor:not-allowed}.zt2-checkbox__icon--disabled .zt2-icon{border:1px solid rgba(255,255,255,.5);box-shadow:-1px -1px 2px 0 #fff,0 0 3px 0 rgba(45,75,115,.2);background-image:-webkit-linear-gradient(316deg,#e1e6eb 0,#e5edf5 100%);background-image:linear-gradient(134deg,#e1e6eb 0,#e5edf5 100%)}.zt2-checkbox__icon--disabled.zt2-checkbox__icon--checked .zt2-icon{opacity:.4;background:#0091fa;color:#fff}.zt2-checkbox__label{margin-left:8px;color:#2d4b73;font-size:14px}.zt2-checkbox__label--left{margin:0 8px 0 0}.zt2-checkbox__label--disabled{color:#c8c9cc}
|
package/es/checkbox/index.less
CHANGED
package/es/index.js
CHANGED
|
@@ -76,7 +76,7 @@ import TextEllipsis from './text-ellipsis';
|
|
|
76
76
|
import Timeline from './timeline';
|
|
77
77
|
import Toast from './toast';
|
|
78
78
|
import Uploader from './uploader';
|
|
79
|
-
var version = '2.1.
|
|
79
|
+
var version = '2.1.25';
|
|
80
80
|
function install(Vue) {
|
|
81
81
|
var components = [ActionSheet, Area, Avatar, BackTop, Badge, Button, Calendar, Cascader, Cell, CellGroup, Checkbox, CheckboxGroup, Col, Collapse, CollapseItem, CountDown, DatetimePicker, Dialog, Divider, DropdownItem, DropdownMenu, Empty, Field, FoldDialog, Form, Grid, GridItem, HierarchySelect, Icon, Image, ImagePreview, IndexAnchor, IndexBar, Info, Lazyload, List, Loading, Locale, MediaPicker, MediaPlayer, MultiplePicker, NavBar, NoticeBar, NumberKeyboard, Overlay, PasswordInput, Picker, Popover, Popup, PullRefresh, Radio, RadioGroup, Rate, Row, Search, Signature, Skeleton, Slider, SpeechRecognizer, Step, Stepper, Steps, Sticky, Swipe, SwipeCell, SwipeItem, Switch, SwitchCell, Tab, Tabbar, TabbarItem, Table, Tabs, Tag, TextEllipsis, Timeline, Toast, Uploader];
|
|
82
82
|
components.forEach(function (item) {
|
package/es/mixins/checkbox.js
CHANGED
|
@@ -29,6 +29,10 @@ export var CheckboxMixin = function CheckboxMixin(_ref) {
|
|
|
29
29
|
bindGroup: {
|
|
30
30
|
type: Boolean,
|
|
31
31
|
default: true
|
|
32
|
+
},
|
|
33
|
+
indeterminate: {
|
|
34
|
+
type: Boolean,
|
|
35
|
+
default: false
|
|
32
36
|
}
|
|
33
37
|
},
|
|
34
38
|
computed: {
|
|
@@ -46,7 +50,7 @@ export var CheckboxMixin = function CheckboxMixin(_ref) {
|
|
|
46
50
|
var boxShadow = this.boxShadow || this.parent && this.parent.boxShadow;
|
|
47
51
|
var border = this.border || this.parent && this.parent.border;
|
|
48
52
|
var iconColor = this.iconColor || this.parent && this.parent.iconColor;
|
|
49
|
-
if ((boxShadow || checkedColor) && this.checked && !this.isDisabled) {
|
|
53
|
+
if ((boxShadow || checkedColor) && (this.checked || this.indeterminate) && !this.isDisabled) {
|
|
50
54
|
return {
|
|
51
55
|
color: iconColor,
|
|
52
56
|
boxShadow: boxShadow,
|
|
@@ -82,24 +86,31 @@ export var CheckboxMixin = function CheckboxMixin(_ref) {
|
|
|
82
86
|
},
|
|
83
87
|
genIcon: function genIcon() {
|
|
84
88
|
var h = this.$createElement;
|
|
85
|
-
var checked = this.checked
|
|
89
|
+
var checked = this.checked,
|
|
90
|
+
indeterminate = this.indeterminate;
|
|
86
91
|
var iconSize = this.iconSize || this.parent && this.parent.iconSize;
|
|
87
92
|
return h("div", {
|
|
88
93
|
"ref": "icon",
|
|
89
94
|
"class": bem('icon', [this.shape, {
|
|
90
95
|
disabled: this.isDisabled,
|
|
91
|
-
checked: checked
|
|
96
|
+
checked: checked || indeterminate
|
|
92
97
|
}]),
|
|
93
98
|
"style": {
|
|
94
99
|
fontSize: addUnit(iconSize)
|
|
95
100
|
}
|
|
96
101
|
}, [this.slots('icon', {
|
|
97
|
-
checked: checked
|
|
102
|
+
checked: checked,
|
|
103
|
+
indeterminate: indeterminate
|
|
98
104
|
}) || (role === 'radio' ? h(Icon, {
|
|
99
105
|
"style": this.iconStyle
|
|
100
106
|
}, [checked ? h("div", {
|
|
101
107
|
"class": bem('dot')
|
|
102
|
-
}) : '']) : h(Icon, {
|
|
108
|
+
}) : '']) : indeterminate ? h(Icon, {
|
|
109
|
+
"attrs": {
|
|
110
|
+
"name": "minus"
|
|
111
|
+
},
|
|
112
|
+
"style": this.iconStyle
|
|
113
|
+
}) : h(Icon, {
|
|
103
114
|
"attrs": {
|
|
104
115
|
"name": "checkBox-select"
|
|
105
116
|
},
|
|
@@ -126,7 +137,8 @@ export var CheckboxMixin = function CheckboxMixin(_ref) {
|
|
|
126
137
|
} else {
|
|
127
138
|
Children.push(this.genLabel());
|
|
128
139
|
}
|
|
129
|
-
var checked = this.checked
|
|
140
|
+
var checked = this.checked,
|
|
141
|
+
indeterminate = this.indeterminate;
|
|
130
142
|
return h("div", {
|
|
131
143
|
"attrs": {
|
|
132
144
|
"role": role,
|
|
@@ -136,7 +148,7 @@ export var CheckboxMixin = function CheckboxMixin(_ref) {
|
|
|
136
148
|
"class": [bem([{
|
|
137
149
|
disabled: this.isDisabled,
|
|
138
150
|
'label-disabled': this.labelDisabled
|
|
139
|
-
}, this.direction]), checked ? '' : bem('disable-icon')],
|
|
151
|
+
}, this.direction]), checked || indeterminate ? '' : bem('disable-icon')],
|
|
140
152
|
"on": {
|
|
141
153
|
"click": this.onClick
|
|
142
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[class*=zt2-hairline]::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid rgba(0,0,0,.1);-webkit-transform:scale(.5);transform:scale(.5)}.zt2-hairline,.zt2-hairline--bottom,.zt2-hairline--left,.zt2-hairline--right,.zt2-hairline--surround,.zt2-hairline--top,.zt2-hairline--top-bottom{position:relative}.zt2-hairline--top::after{border-top-width:1px}.zt2-hairline--left::after{border-left-width:1px}.zt2-hairline--right::after{border-right-width:1px}.zt2-hairline--bottom::after{border-bottom-width:1px}.zt2-hairline--top-bottom::after,.zt2-hairline-unset--top-bottom::after{border-width:1px 0}.zt2-hairline--surround::after{border-width:1px}.zt2-multiple-picker{position:relative;background-color:#fff;-webkit-user-select:none;user-select:none}.zt2-multiple-picker__toolbar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;box-sizing:content-box;height:44px;padding:8px 16px;border-top:1px solid rgba(45,75,115,.1)}.zt2-multiple-picker__border{position:relative}.zt2-multiple-picker__border::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;bottom:0;left:0;border-bottom:1px solid rgba(0,0,0,.1);-webkit-transform:scaleY(.5);transform:scaleY(.5)}.zt2-multiple-picker__cancel,.zt2-multiple-picker__confirm{height:100%;padding:0 16px;font-size:14px;background-color:transparent;border:none;cursor:pointer}.zt2-multiple-picker__cancel:active,.zt2-multiple-picker__confirm:active{opacity:.7}.zt2-multiple-picker__confirm{color:#0091fa;font-weight:700}.zt2-multiple-picker__cancel{color:#000;font-weight:400}.zt2-multiple-picker__title{font-weight:400;font-size:14px;line-height:20px;text-align:center;color:#2d4b73;opacity:.4;padding:12px 0;border-bottom:1px solid rgba(45,75,115,.1)}.zt2-multiple-picker__header{width:100%;height:40px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;font-size:14px;font-weight:400}.zt2-multiple-picker__header>li{-webkit-box-flex:1;-webkit-flex:auto;flex:auto;text-align:center}.zt2-multiple-picker__options{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;cursor:grab}.zt2-multiple-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#0091fa;background-color:rgba(255,255,255,.9)}.zt2-multiple-picker-options{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow:scroll;font-size:14px}.zt2-multiple-picker-options__wrapper{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;background-color:#fff;padding:12px 16px 4px 16px}.zt2-multiple-picker-options__item{color:#2d4b73;padding:0 4px 8px 0;box-sizing:border-box;text-align:center;font-size:14px}.zt2-multiple-picker-options__item .zt2-ellipsis{line-height:20px;border-radius:18px;border:1px solid rgba(45,75,115,.2);padding:7px 16px;opacity:.6}.zt2-multiple-picker-options__item--disabled{cursor:not-allowed;opacity:.3}.zt2-multiple-picker-options__item--last{padding-right:0}.zt2-multiple-picker-options__item--selected .zt2-ellipsis{background:rgba(0,145,250,.1);border:1px solid rgba(0,145,250,.6);border-radius:18px;color:#0091fa;opacity:1}
|
|
1
|
+
[class*=zt2-hairline]::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid rgba(0,0,0,.1);-webkit-transform:scale(.5);transform:scale(.5)}.zt2-hairline,.zt2-hairline--bottom,.zt2-hairline--left,.zt2-hairline--right,.zt2-hairline--surround,.zt2-hairline--top,.zt2-hairline--top-bottom{position:relative}.zt2-hairline--top::after{border-top-width:1px}.zt2-hairline--left::after{border-left-width:1px}.zt2-hairline--right::after{border-right-width:1px}.zt2-hairline--bottom::after{border-bottom-width:1px}.zt2-hairline--top-bottom::after,.zt2-hairline-unset--top-bottom::after{border-width:1px 0}.zt2-hairline--surround::after{border-width:1px}.zt2-multiple-picker{position:relative;background-color:#fff;-webkit-user-select:none;user-select:none}.zt2-multiple-picker__toolbar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;box-sizing:content-box;height:44px;padding:8px 16px;border-top:1px solid rgba(45,75,115,.1)}.zt2-multiple-picker__toolbar-select-all{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-flex:1;-webkit-flex:1;flex:1;max-width:45%}.zt2-multiple-picker__toolbar-divider{width:1px;height:14px;background-color:#e9ecf2;margin-left:7px;margin-right:7px}.zt2-multiple-picker__toolbar-checkbox{-webkit-flex-shrink:0;flex-shrink:0}.zt2-multiple-picker__toolbar-checkbox .zt2-checkbox__icon{font-size:var(--zt-font-size-xl)}.zt2-multiple-picker__toolbar-checkbox .zt2-checkbox__label{font-size:16px;margin-left:4px}.zt2-multiple-picker__toolbar-checkbox-text{font-size:16px;color:#2d4b73;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width:375px){.zt2-multiple-picker__toolbar .zt2-multiple-picker__in-select-all{padding:0 14px}}@media (min-width:376px){.zt2-multiple-picker__toolbar .zt2-multiple-picker__in-select-all{padding:0 22px}}.zt2-multiple-picker__toolbar .zt2-multiple-picker__in-select-all .zt2-button__text{font-size:16px}@media (max-width:375px){.zt2-multiple-picker__toolbar .zt2-multiple-picker__select-other{padding:0 10px}}@media (min-width:376px){.zt2-multiple-picker__toolbar .zt2-multiple-picker__select-other{padding:0 14px}}.zt2-multiple-picker__toolbar .zt2-multiple-picker__select-other .zt2-button__text{font-size:16px}.zt2-multiple-picker__border{position:relative}.zt2-multiple-picker__border::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;bottom:0;left:0;border-bottom:1px solid rgba(0,0,0,.1);-webkit-transform:scaleY(.5);transform:scaleY(.5)}.zt2-multiple-picker__cancel,.zt2-multiple-picker__confirm{height:100%;padding:0 16px;font-size:14px;background-color:transparent;border:none;cursor:pointer}.zt2-multiple-picker__cancel:active,.zt2-multiple-picker__confirm:active{opacity:.7}.zt2-multiple-picker__confirm{color:#0091fa;font-weight:700}.zt2-multiple-picker__cancel{color:#000;font-weight:400}.zt2-multiple-picker__title{font-weight:400;font-size:14px;line-height:20px;text-align:center;color:#2d4b73;opacity:.4;padding:12px 0;border-bottom:1px solid rgba(45,75,115,.1)}.zt2-multiple-picker__header{width:100%;height:40px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;font-size:14px;font-weight:400}.zt2-multiple-picker__header>li{-webkit-box-flex:1;-webkit-flex:auto;flex:auto;text-align:center}.zt2-multiple-picker__options{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;cursor:grab}.zt2-multiple-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#0091fa;background-color:rgba(255,255,255,.9)}.zt2-multiple-picker-options{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow:scroll;font-size:14px}.zt2-multiple-picker-options__wrapper{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;background-color:#fff;padding:12px 16px 4px 16px}.zt2-multiple-picker-options__item{color:#2d4b73;padding:0 4px 8px 0;box-sizing:border-box;text-align:center;font-size:14px}.zt2-multiple-picker-options__item .zt2-ellipsis{line-height:20px;border-radius:18px;border:1px solid rgba(45,75,115,.2);padding:7px 16px;opacity:.6}.zt2-multiple-picker-options__item--disabled{cursor:not-allowed;opacity:.3}.zt2-multiple-picker-options__item--last{padding-right:0}.zt2-multiple-picker-options__item--selected .zt2-ellipsis{background:rgba(0,145,250,.1);border:1px solid rgba(0,145,250,.6);border-radius:18px;color:#0091fa;opacity:1}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _mergeJSXProps, { default as _mergeJSXProps2 } from "@vue/babel-helper-vue-jsx-merge-props";
|
|
1
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
3
|
// Utils
|
|
3
4
|
import { createNamespace } from '../utils';
|
|
@@ -9,6 +10,7 @@ import MultiplePickerOptions from './MultiplePickerOptions';
|
|
|
9
10
|
import Popup from '../popup';
|
|
10
11
|
import { PopupMixin } from '../mixins/popup';
|
|
11
12
|
import Button from '../button';
|
|
13
|
+
import Checkbox from '../checkbox';
|
|
12
14
|
var _createNamespace = createNamespace('multiple-picker'),
|
|
13
15
|
createComponent = _createNamespace[0],
|
|
14
16
|
bem = _createNamespace[1],
|
|
@@ -47,10 +49,15 @@ export default createComponent({
|
|
|
47
49
|
safeAreaInsetBottom: {
|
|
48
50
|
type: Boolean,
|
|
49
51
|
default: false
|
|
52
|
+
},
|
|
53
|
+
showSelectAll: {
|
|
54
|
+
type: Boolean,
|
|
55
|
+
default: false
|
|
50
56
|
}
|
|
51
57
|
}),
|
|
52
58
|
data: function data() {
|
|
53
59
|
return {
|
|
60
|
+
currentIndexs: [],
|
|
54
61
|
confirmIndexs: null
|
|
55
62
|
};
|
|
56
63
|
},
|
|
@@ -62,8 +69,11 @@ export default createComponent({
|
|
|
62
69
|
this.$nextTick(function () {
|
|
63
70
|
if (_this.$refs.pickerOptions && _this.confirmIndexs) {
|
|
64
71
|
_this.$refs.pickerOptions.setConfirmIndex(_this.confirmIndexs);
|
|
72
|
+
// 同步 currentIndexs 以更新底部全选和已选状态
|
|
73
|
+
_this.currentIndexs = [].concat(_this.confirmIndexs);
|
|
65
74
|
} else if (!_this.confirmIndexs && _this.defaultIndexs && _this.defaultIndexs.length === 0) {
|
|
66
75
|
_this.$refs.pickerOptions.setConfirmIndex([]);
|
|
76
|
+
_this.currentIndexs = [];
|
|
67
77
|
}
|
|
68
78
|
});
|
|
69
79
|
}
|
|
@@ -72,6 +82,12 @@ export default createComponent({
|
|
|
72
82
|
}
|
|
73
83
|
},
|
|
74
84
|
computed: {
|
|
85
|
+
isAllSelected: function isAllSelected() {
|
|
86
|
+
return this.currentIndexs.length > 0 && this.currentIndexs.length === this.options.length;
|
|
87
|
+
},
|
|
88
|
+
isIndeterminate: function isIndeterminate() {
|
|
89
|
+
return this.currentIndexs.length > 0 && this.currentIndexs.length < this.options.length;
|
|
90
|
+
},
|
|
75
91
|
itemPxHeight: function itemPxHeight() {
|
|
76
92
|
return this.itemHeight ? unitToPx(this.itemHeight) : DEFAULT_ITEM_HEIGHT;
|
|
77
93
|
}
|
|
@@ -97,6 +113,10 @@ export default createComponent({
|
|
|
97
113
|
return result;
|
|
98
114
|
},
|
|
99
115
|
onChange: function onChange() {
|
|
116
|
+
// 同步 currentIndexs 以触发计算属性更新
|
|
117
|
+
if (this.$refs.pickerOptions) {
|
|
118
|
+
this.currentIndexs = [].concat(this.$refs.pickerOptions.currentIndexs);
|
|
119
|
+
}
|
|
100
120
|
this.$emit('change', this.getOptions());
|
|
101
121
|
},
|
|
102
122
|
cancel: function cancel() {
|
|
@@ -110,6 +130,28 @@ export default createComponent({
|
|
|
110
130
|
});
|
|
111
131
|
this.emit('confirm', options);
|
|
112
132
|
},
|
|
133
|
+
handleSelectAll: function handleSelectAll() {
|
|
134
|
+
var newIndexs = !this.isAllSelected ? this.options && this.options.map(function (_, index) {
|
|
135
|
+
return index;
|
|
136
|
+
}) : [];
|
|
137
|
+
this.currentIndexs = newIndexs;
|
|
138
|
+
if (this.$refs.pickerOptions) {
|
|
139
|
+
this.$refs.pickerOptions.setConfirmIndex(newIndexs);
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
onSelectOther: function onSelectOther() {
|
|
143
|
+
var _this3 = this;
|
|
144
|
+
var newIndexs = [];
|
|
145
|
+
this.options && this.options.forEach(function (_, index) {
|
|
146
|
+
if (!_this3.currentIndexs.includes(index)) {
|
|
147
|
+
newIndexs.push(index);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
this.currentIndexs = newIndexs;
|
|
151
|
+
if (this.$refs.pickerOptions) {
|
|
152
|
+
this.$refs.pickerOptions.setConfirmIndex(newIndexs);
|
|
153
|
+
}
|
|
154
|
+
},
|
|
113
155
|
genTitle: function genTitle() {
|
|
114
156
|
var h = this.$createElement;
|
|
115
157
|
var titleSlot = this.slots('title');
|
|
@@ -122,13 +164,32 @@ export default createComponent({
|
|
|
122
164
|
}, [this.title]);
|
|
123
165
|
}
|
|
124
166
|
},
|
|
125
|
-
|
|
167
|
+
genOther: function genOther() {
|
|
126
168
|
var h = this.$createElement;
|
|
127
169
|
return h(Button, {
|
|
170
|
+
"class": bem('select-other'),
|
|
128
171
|
"attrs": {
|
|
129
|
-
"size": "
|
|
130
|
-
|
|
172
|
+
"size": "medium"
|
|
173
|
+
},
|
|
174
|
+
"style": {
|
|
175
|
+
marginLeft: '12px',
|
|
176
|
+
marginRight: '8px'
|
|
131
177
|
},
|
|
178
|
+
"on": {
|
|
179
|
+
"click": this.onSelectOther
|
|
180
|
+
}
|
|
181
|
+
}, [this.slots('selectOther') || '其他']);
|
|
182
|
+
},
|
|
183
|
+
genCancel: function genCancel() {
|
|
184
|
+
var h = this.$createElement;
|
|
185
|
+
return h(Button, _mergeJSXProps([{
|
|
186
|
+
"class": [this.showSelectAll ? bem('in-select-all') : ''],
|
|
187
|
+
"attrs": {
|
|
188
|
+
"size": this.showSelectAll ? "medium" : "normal"
|
|
189
|
+
}
|
|
190
|
+
}, this.showSelectAll ? {
|
|
191
|
+
block: true
|
|
192
|
+
} : {}, {
|
|
132
193
|
"style": {
|
|
133
194
|
marginRigth: "4px",
|
|
134
195
|
backgroundColor: "white"
|
|
@@ -136,30 +197,54 @@ export default createComponent({
|
|
|
136
197
|
"on": {
|
|
137
198
|
"click": this.cancel
|
|
138
199
|
}
|
|
139
|
-
}, [this.slots('cancel') || this.cancelButtonText || t('cancel')]);
|
|
200
|
+
}]), [this.slots('cancel') || this.cancelButtonText || t('cancel')]);
|
|
140
201
|
},
|
|
141
202
|
genConfirm: function genConfirm() {
|
|
142
203
|
var h = this.$createElement;
|
|
143
|
-
return h(Button, {
|
|
204
|
+
return h(Button, _mergeJSXProps2([{
|
|
144
205
|
"attrs": {
|
|
145
206
|
"type": "primary",
|
|
146
|
-
"size": "normal"
|
|
147
|
-
"block": true
|
|
207
|
+
"size": this.showSelectAll ? "medium" : "normal"
|
|
148
208
|
},
|
|
209
|
+
"class": [this.showSelectAll ? bem('in-select-all') : '']
|
|
210
|
+
}, this.showSelectAll ? {
|
|
211
|
+
block: true
|
|
212
|
+
} : {}, {
|
|
149
213
|
"style": {
|
|
150
214
|
marginLeft: "8px"
|
|
151
215
|
},
|
|
152
216
|
"on": {
|
|
153
217
|
"click": this.confirm
|
|
154
218
|
}
|
|
155
|
-
}, [this.slots('confirm') || this.confirmButtonText || t('confirm')]);
|
|
219
|
+
}]), [this.slots('confirm') || this.confirmButtonText || t('confirm')]);
|
|
220
|
+
},
|
|
221
|
+
genSelectAll: function genSelectAll() {
|
|
222
|
+
var h = this.$createElement;
|
|
223
|
+
return h("div", {
|
|
224
|
+
"class": bem('toolbar-select-all')
|
|
225
|
+
}, [h(Checkbox, {
|
|
226
|
+
"class": bem('toolbar-checkbox'),
|
|
227
|
+
"attrs": {
|
|
228
|
+
"shape": 'square',
|
|
229
|
+
"value": this.isAllSelected,
|
|
230
|
+
"indeterminate": this.isIndeterminate
|
|
231
|
+
},
|
|
232
|
+
"on": {
|
|
233
|
+
"click": this.handleSelectAll
|
|
234
|
+
}
|
|
235
|
+
}, ["\u5168\u9009"]), h("div", {
|
|
236
|
+
"class": bem('toolbar-divider')
|
|
237
|
+
}), h("span", {
|
|
238
|
+
"class": bem('toolbar-checkbox-text')
|
|
239
|
+
}, ["\u5DF2\u9009 ", this.currentIndexs && this.currentIndexs.length || 0])]);
|
|
156
240
|
},
|
|
157
241
|
genToolbar: function genToolbar() {
|
|
158
242
|
var h = this.$createElement;
|
|
159
243
|
if (this.showToolbar) {
|
|
244
|
+
var toolbar = this.showSelectAll ? [this.genSelectAll(), this.genOther(), this.genCancel(), this.genConfirm()] : [this.genCancel(), this.genConfirm()];
|
|
160
245
|
return h("div", {
|
|
161
246
|
"class": bem('toolbar')
|
|
162
|
-
}, [this.slots() ||
|
|
247
|
+
}, [this.slots() || toolbar]);
|
|
163
248
|
}
|
|
164
249
|
},
|
|
165
250
|
genOptions: function genOptions() {
|
|
@@ -178,7 +263,7 @@ export default createComponent({
|
|
|
178
263
|
}, [this.genOptionItems()]);
|
|
179
264
|
},
|
|
180
265
|
genOptionItems: function genOptionItems() {
|
|
181
|
-
var
|
|
266
|
+
var _this4 = this;
|
|
182
267
|
var h = this.$createElement;
|
|
183
268
|
var formatOptions = [];
|
|
184
269
|
if (this.options && this.options[0] && typeof this.options[0] !== 'object') {
|
|
@@ -207,7 +292,7 @@ export default createComponent({
|
|
|
207
292
|
},
|
|
208
293
|
"on": {
|
|
209
294
|
"change": function change() {
|
|
210
|
-
|
|
295
|
+
_this4.onChange();
|
|
211
296
|
}
|
|
212
297
|
}
|
|
213
298
|
});
|
|
@@ -14,6 +14,64 @@
|
|
|
14
14
|
height: @picker-toolbar-height;
|
|
15
15
|
padding: 8px 16px;
|
|
16
16
|
border-top: 1px solid rgba(45,75,115,0.10);
|
|
17
|
+
|
|
18
|
+
&-select-all {
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
flex: 1;
|
|
22
|
+
max-width: 45%;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&-divider {
|
|
26
|
+
width: 1px;
|
|
27
|
+
height: 14px;
|
|
28
|
+
background-color: #E9ECF2;
|
|
29
|
+
margin-left: 7px;
|
|
30
|
+
margin-right: 7px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&-checkbox {
|
|
34
|
+
flex-shrink: 0;
|
|
35
|
+
.zt2-checkbox__icon {
|
|
36
|
+
font-size: var(--zt-font-size-xl);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.zt2-checkbox__label {
|
|
40
|
+
font-size: 16px;
|
|
41
|
+
margin-left: 4px;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&-checkbox-text {
|
|
46
|
+
font-size: 16px;
|
|
47
|
+
color: #2d4b73;
|
|
48
|
+
white-space: nowrap;
|
|
49
|
+
text-overflow: ellipsis;
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.zt2-multiple-picker__in-select-all {
|
|
54
|
+
@media (max-width: 375px) {
|
|
55
|
+
padding: 0 14px;
|
|
56
|
+
}
|
|
57
|
+
@media (min-width: 376px) {
|
|
58
|
+
padding: 0 22px;
|
|
59
|
+
}
|
|
60
|
+
.zt2-button__text {
|
|
61
|
+
font-size: 16px;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
.zt2-multiple-picker__select-other {
|
|
65
|
+
@media (max-width: 375px) {
|
|
66
|
+
padding: 0 10px;
|
|
67
|
+
}
|
|
68
|
+
@media (min-width: 376px) {
|
|
69
|
+
padding: 0 14px;
|
|
70
|
+
}
|
|
71
|
+
.zt2-button__text {
|
|
72
|
+
font-size: 16px;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
17
75
|
}
|
|
18
76
|
|
|
19
77
|
&__border {
|
|
@@ -2,6 +2,7 @@ import '../../style/base.css';
|
|
|
2
2
|
import '../../overlay/index.css';
|
|
3
3
|
import '../../info/index.css';
|
|
4
4
|
import '../../icon/index.css';
|
|
5
|
+
import '../../checkbox/index.css';
|
|
5
6
|
import '../../popup/index.css';
|
|
6
7
|
import '../../loading/index.css';
|
|
7
8
|
import '../../button/index.css';
|
|
@@ -2,6 +2,7 @@ import '../../style/base.less';
|
|
|
2
2
|
import '../../overlay/index.less';
|
|
3
3
|
import '../../info/index.less';
|
|
4
4
|
import '../../icon/index.less';
|
|
5
|
+
import '../../checkbox/index.less';
|
|
5
6
|
import '../../popup/index.less';
|
|
6
7
|
import '../../loading/index.less';
|
|
7
8
|
import '../../button/index.less';
|
package/es/style/var.less
CHANGED
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
@button-large-height: 50px;
|
|
177
177
|
@button-default-height: 44px;
|
|
178
178
|
@button-default-line-height: calc(
|
|
179
|
-
|
|
179
|
+
@button-normal-font-size * 2 - 8px
|
|
180
180
|
);
|
|
181
181
|
@button-default-font-size: @font-size-lg;
|
|
182
182
|
@button-default-color: @text-color-3;
|
package/lib/button/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.zt2-button{position:relative;display:inline-block;box-sizing:border-box;height:44px;margin:0;padding:0;font-size:16px;line-height:calc(
|
|
1
|
+
.zt2-button{position:relative;display:inline-block;box-sizing:border-box;height:44px;margin:0;padding:0;font-size:16px;line-height:calc(16px * 2 - 8px);text-align:center;border-radius:22px;cursor:pointer;-webkit-transition:opacity .2s;transition:opacity .2s;-webkit-appearance:none}.zt2-button::before{position:absolute;top:50%;left:50%;width:100%;height:100%;background-color:#000;border:inherit;border-color:#000;border-radius:inherit;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;content:' '}.zt2-button:active::before{opacity:.1}.zt2-button--disabled::before,.zt2-button--loading::before{display:none}.zt2-button--default{color:#2d4b73;background:0 0;border:1px solid rgba(45,75,115,.2)}.zt2-button--primary{color:#fff;background:-webkit-linear-gradient(135deg,#3cafff 0,#0091fa 100%);background:linear-gradient(-45deg,#3cafff 0,#0091fa 100%);border:1px solid #3caafa}.zt2-button--primary-light{color:#0091fa;background:rgba(1,144,250,.1);border:none}.zt2-button--danger{color:#fff;background:#ff5a5a;border:1px solid #ff5a5a}.zt2-button--warning{color:#fff;background:#fa8500;border:1px solid #fa8500}.zt2-button--success{color:#fff;background:#00e173;border:1px solid #00e173}.zt2-button--plain{background:0 0}.zt2-button--plain.zt2-button--primary{color:#3caafa}.zt2-button--plain.zt2-button--danger{color:#ff5a5a}.zt2-button--plain.zt2-button--warning{color:#fa8500}.zt2-button--plain.zt2-button--success{color:#00e173}.zt2-button--large{width:100%;height:50px}.zt2-button--normal{padding:0 24px;font-size:16px}.zt2-button--medium{height:36px;padding:0 16px;font-size:14px}.zt2-button--small{height:28px;padding:0 12px;font-size:14px}.zt2-button__loading{color:inherit;font-size:inherit}.zt2-button--mini{height:24px;padding:0 12px;font-size:12px}.zt2-button--mini+.zt2-button--mini{margin-left:4px}.zt2-button--block{display:block;width:100%}.zt2-button--block-inner{display:block;width:calc(100% - 2 * 16px);margin:0 16px}.zt2-button--disabled{cursor:not-allowed;opacity:.4}.zt2-button--loading{cursor:default}.zt2-button--round{border-radius:999px;padding:0}.zt2-button--round.zt2-button--mini{width:24px}.zt2-button--round.zt2-button--small{width:28px}.zt2-button--round.zt2-button--medium{width:36px}.zt2-button--round.zt2-button--normal{width:44px}.zt2-button--square{border-radius:0}.zt2-button__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:100%}.zt2-button__content::before{content:' '}.zt2-button__icon{font-size:24px}.zt2-button__icon--mini{font-size:16px}.zt2-button__icon--small{font-size:20px}.zt2-button__icon--medium{font-size:20px}.zt2-button__icon+.zt2-button__text,.zt2-button__loading+.zt2-button__text,.zt2-button__text+.zt2-button__icon,.zt2-button__text+.zt2-button__loading{margin-left:2px}.zt2-button--hairline{border-width:0}.zt2-button--hairline::after{border-color:inherit;border-radius:44px}.zt2-button--hairline.zt2-button--round::after{border-radius:999px}.zt2-button--hairline.zt2-button--square::after{border-radius:0}
|
package/lib/checkbox/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.zt2-checkbox{display:-webkit-box;display:-webkit-flex;display:flex;overflow:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:12px 0}.zt2-checkbox--disabled{cursor:not-allowed}.zt2-checkbox--label-disabled{cursor:default}.zt2-checkbox--horizontal:not(:last-child){margin-right:32px}.zt2-checkbox__icon{font-size:16px;cursor:pointer;box-sizing:border-box}.zt2-checkbox__icon .zt2-icon{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:1em;height:1em;color:transparent;text-align:center;border:1px solid rgba(45,75,115,.13);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:color,border-color,background-color;transition-property:color,border-color,background-color}.zt2-checkbox__icon--round .zt2-icon{border-radius:100%}.zt2-checkbox__icon--checked .zt2-icon{color:#fff;background:#0091fa;box-shadow:inset 1px 1px 2px 0 rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.5)}.zt2-checkbox__icon--disabled{cursor:not-allowed}.zt2-checkbox__icon--disabled .zt2-icon{border:1px solid rgba(255,255,255,.5);box-shadow:-1px -1px 2px 0 #fff,0 0 3px 0 rgba(45,75,115,.2);background-image:-webkit-linear-gradient(316deg,#e1e6eb 0,#e5edf5 100%);background-image:linear-gradient(134deg,#e1e6eb 0,#e5edf5 100%)}.zt2-checkbox__icon--disabled.zt2-checkbox__icon--checked .zt2-icon{opacity:.4;background:#0091fa;color:#fff}.zt2-checkbox__label{margin-left:8px;color:#2d4b73;font-size:14px}.zt2-checkbox__label--left{margin:0 8px 0 0}.zt2-checkbox__label--disabled{color:#c8c9cc}
|
|
1
|
+
.zt2-checkbox{display:-webkit-box;display:-webkit-flex;display:flex;overflow:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:12px 0}.zt2-checkbox--disabled{cursor:not-allowed}.zt2-checkbox--label-disabled{cursor:default}.zt2-checkbox--horizontal:not(:last-child){margin-right:32px}.zt2-checkbox__icon{font-size:16px;cursor:pointer;box-sizing:border-box}.zt2-checkbox__icon .zt2-icon{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:1em;height:1em;color:transparent;text-align:center;border:1px solid rgba(45,75,115,.13);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:color,border-color,background-color;transition-property:color,border-color,background-color}.zt2-checkbox__icon .zt2-icon{border-radius:4px}.zt2-checkbox__icon--round .zt2-icon{border-radius:100%}.zt2-checkbox__icon--checked .zt2-icon{color:#fff;background:#0091fa;box-shadow:inset 1px 1px 2px 0 rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.5)}.zt2-checkbox__icon--disabled{cursor:not-allowed}.zt2-checkbox__icon--disabled .zt2-icon{border:1px solid rgba(255,255,255,.5);box-shadow:-1px -1px 2px 0 #fff,0 0 3px 0 rgba(45,75,115,.2);background-image:-webkit-linear-gradient(316deg,#e1e6eb 0,#e5edf5 100%);background-image:linear-gradient(134deg,#e1e6eb 0,#e5edf5 100%)}.zt2-checkbox__icon--disabled.zt2-checkbox__icon--checked .zt2-icon{opacity:.4;background:#0091fa;color:#fff}.zt2-checkbox__label{margin-left:8px;color:#2d4b73;font-size:14px}.zt2-checkbox__label--left{margin:0 8px 0 0}.zt2-checkbox__label--disabled{color:#c8c9cc}
|