eoss 0.1.0-alpha.44 → 0.1.0-alpha.45
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/button-group.js +11 -9
- package/lib/button.js +5 -3
- package/lib/cascader.js +3 -3
- package/lib/color-picker.js +6 -3
- package/lib/date-picker.js +5 -3
- package/lib/eoss.common.js +516 -188
- package/lib/index.js +1 -1
- package/lib/input-number.js +6 -2
- package/lib/input.js +148 -87
- package/lib/select.js +212 -11
- package/lib/switch.js +6 -3
- package/lib/table-column.js +10 -1
- package/lib/table.js +64 -22
- package/lib/tag.js +2 -0
- package/lib/theme-chalk/base.css +1 -1
- package/lib/theme-chalk/cascader.css +1 -1
- package/lib/theme-chalk/icons.css +1 -1
- package/lib/theme-chalk/index.css +1 -1
- package/lib/theme-chalk/main.css +1 -1
- package/lib/theme-chalk/pagination.css +1 -1
- package/lib/theme-chalk/select.css +1 -1
- package/lib/theme-chalk/table-column.css +1 -1
- package/lib/theme-chalk/table.css +1 -1
- package/lib/theme-chalk/tag.css +1 -1
- package/lib/time-picker.js +5 -3
- package/lib/time-select.js +5 -3
- package/package.json +1 -1
- package/packages/button/src/button-group.vue +9 -7
- package/packages/button/src/button.vue +7 -5
- package/packages/cascader/src/cascader.vue +1 -1
- package/packages/color-picker/src/color-picker.vue +4 -1
- package/packages/date-picker/src/picker.vue +3 -1
- package/packages/input/src/input.vue +94 -60
- package/packages/input-number/src/input-number.vue +5 -1
- package/packages/select/src/select.vue +182 -12
- package/packages/switch/src/switch.vue +4 -1
- package/packages/table/src/table-column.js +7 -1
- package/packages/table/src/table-header.js +52 -7
- package/packages/table/src/util.js +3 -0
- package/packages/tag/src/tag.vue +2 -0
- package/packages/theme-chalk/src/base.scss +7 -0
- package/packages/theme-chalk/src/icons.scss +13 -1
- package/packages/theme-chalk/src/table.scss +12 -2
- package/packages/theme-chalk/src/tag.scss +303 -242
- package/src/index.js +1 -1
package/lib/input-number.js
CHANGED
|
@@ -142,7 +142,7 @@ module.exports = require("vue");
|
|
|
142
142
|
// ESM COMPAT FLAG
|
|
143
143
|
__webpack_require__.r(__webpack_exports__);
|
|
144
144
|
|
|
145
|
-
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input-number/src/input-number.vue?vue&type=template&id=
|
|
145
|
+
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input-number/src/input-number.vue?vue&type=template&id=40f587bb&
|
|
146
146
|
var render = function () {
|
|
147
147
|
var _vm = this
|
|
148
148
|
var _h = _vm.$createElement
|
|
@@ -312,7 +312,7 @@ var staticRenderFns = []
|
|
|
312
312
|
render._withStripped = true
|
|
313
313
|
|
|
314
314
|
|
|
315
|
-
// CONCATENATED MODULE: ./packages/input-number/src/input-number.vue?vue&type=template&id=
|
|
315
|
+
// CONCATENATED MODULE: ./packages/input-number/src/input-number.vue?vue&type=template&id=40f587bb&
|
|
316
316
|
|
|
317
317
|
// EXTERNAL MODULE: external "eoss/lib/input"
|
|
318
318
|
var input_ = __webpack_require__(14);
|
|
@@ -795,7 +795,10 @@ var repeat_click = __webpack_require__(105);
|
|
|
795
795
|
}
|
|
796
796
|
},
|
|
797
797
|
mounted: function mounted() {
|
|
798
|
+
// 只读态下内部 es-input 被 v-if 移除,ref 不存在,需与 updated 同样防护
|
|
799
|
+
if (!this.$refs || !this.$refs.input) return;
|
|
798
800
|
var innerInput = this.$refs.input.$refs.input;
|
|
801
|
+
if (!innerInput) return;
|
|
799
802
|
innerInput.setAttribute('role', 'spinbutton');
|
|
800
803
|
innerInput.setAttribute('aria-valuemax', this.max);
|
|
801
804
|
innerInput.setAttribute('aria-valuemin', this.min);
|
|
@@ -805,6 +808,7 @@ var repeat_click = __webpack_require__(105);
|
|
|
805
808
|
updated: function updated() {
|
|
806
809
|
if (!this.$refs || !this.$refs.input) return;
|
|
807
810
|
var innerInput = this.$refs.input.$refs.input;
|
|
811
|
+
if (!innerInput) return;
|
|
808
812
|
innerInput.setAttribute('aria-valuenow', this.currentValue);
|
|
809
813
|
}
|
|
810
814
|
});
|
package/lib/input.js
CHANGED
|
@@ -3619,7 +3619,7 @@ module.exports = require("vue");
|
|
|
3619
3619
|
// ESM COMPAT FLAG
|
|
3620
3620
|
__webpack_require__.r(__webpack_exports__);
|
|
3621
3621
|
|
|
3622
|
-
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=template&id=
|
|
3622
|
+
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/input/src/input.vue?vue&type=template&id=7d4041a6&
|
|
3623
3623
|
var render = function () {
|
|
3624
3624
|
var _vm = this
|
|
3625
3625
|
var _h = _vm.$createElement
|
|
@@ -3684,62 +3684,76 @@ var render = function () {
|
|
|
3684
3684
|
2
|
|
3685
3685
|
)
|
|
3686
3686
|
: _vm._e(),
|
|
3687
|
-
_vm.
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
:
|
|
3725
|
-
|
|
3726
|
-
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3687
|
+
_vm.inputReadonly
|
|
3688
|
+
? _c("div", { staticClass: "es-field-readonly" }, [
|
|
3689
|
+
_vm._v(
|
|
3690
|
+
"\n " +
|
|
3691
|
+
_vm._s(
|
|
3692
|
+
_vm.passwordVisible
|
|
3693
|
+
? _vm.nativeInputValue
|
|
3694
|
+
: _vm.maskedInputValue
|
|
3695
|
+
) +
|
|
3696
|
+
"\n "
|
|
3697
|
+
),
|
|
3698
|
+
])
|
|
3699
|
+
: [
|
|
3700
|
+
_vm.type === "password" ||
|
|
3701
|
+
(_vm.showPassword && !_vm.passwordVisible)
|
|
3702
|
+
? _c("input", {
|
|
3703
|
+
staticClass: "es-input__hidden",
|
|
3704
|
+
staticStyle: {
|
|
3705
|
+
position: "absolute",
|
|
3706
|
+
top: "-9999px",
|
|
3707
|
+
left: "-9999px",
|
|
3708
|
+
width: "0",
|
|
3709
|
+
height: "0",
|
|
3710
|
+
opacity: "0",
|
|
3711
|
+
},
|
|
3712
|
+
attrs: { type: "password", autocomplete: "off" },
|
|
3713
|
+
})
|
|
3714
|
+
: _vm._e(),
|
|
3715
|
+
_vm.type !== "textarea"
|
|
3716
|
+
? _c(
|
|
3717
|
+
"input",
|
|
3718
|
+
_vm._b(
|
|
3719
|
+
{
|
|
3720
|
+
ref: "input",
|
|
3721
|
+
staticClass: "es-input__inner",
|
|
3722
|
+
class: { "is-round": _vm.round },
|
|
3723
|
+
style: _vm.innerStyle,
|
|
3724
|
+
attrs: {
|
|
3725
|
+
tabindex: _vm.tabindex,
|
|
3726
|
+
type: _vm.showPassword
|
|
3727
|
+
? _vm.passwordVisible
|
|
3728
|
+
? "text"
|
|
3729
|
+
: "password"
|
|
3730
|
+
: _vm.type,
|
|
3731
|
+
disabled: _vm.inputDisabled,
|
|
3732
|
+
readonly: _vm.nativeReadonly,
|
|
3733
|
+
autocomplete:
|
|
3734
|
+
_vm.type === "password" ||
|
|
3735
|
+
(_vm.showPassword && !_vm.passwordVisible)
|
|
3736
|
+
? "new-password"
|
|
3737
|
+
: _vm.autoComplete || _vm.autocomplete,
|
|
3738
|
+
"aria-label": _vm.label,
|
|
3739
|
+
},
|
|
3740
|
+
on: {
|
|
3741
|
+
compositionstart: _vm.handleCompositionStart,
|
|
3742
|
+
compositionupdate: _vm.handleCompositionUpdate,
|
|
3743
|
+
compositionend: _vm.handleCompositionEnd,
|
|
3744
|
+
input: _vm.handleInput,
|
|
3745
|
+
focus: _vm.handleFocus,
|
|
3746
|
+
blur: _vm.handleBlur,
|
|
3747
|
+
change: _vm.handleChange,
|
|
3748
|
+
},
|
|
3749
|
+
},
|
|
3750
|
+
"input",
|
|
3751
|
+
_vm.$attrs,
|
|
3752
|
+
false
|
|
3753
|
+
)
|
|
3754
|
+
)
|
|
3755
|
+
: _vm._e(),
|
|
3756
|
+
],
|
|
3743
3757
|
_vm.$slots.prefix || _vm.prefix || _vm.prefixIcon
|
|
3744
3758
|
? _c(
|
|
3745
3759
|
"span",
|
|
@@ -3880,35 +3894,50 @@ var render = function () {
|
|
|
3880
3894
|
)
|
|
3881
3895
|
: _vm._e(),
|
|
3882
3896
|
]
|
|
3883
|
-
:
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
"
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3897
|
+
: [
|
|
3898
|
+
_vm.inputReadonly
|
|
3899
|
+
? _c(
|
|
3900
|
+
"div",
|
|
3901
|
+
{
|
|
3902
|
+
staticClass:
|
|
3903
|
+
"es-field-readonly es-field-readonly--textarea",
|
|
3904
|
+
staticStyle: {
|
|
3905
|
+
"white-space": "pre-wrap",
|
|
3906
|
+
"word-break": "break-all",
|
|
3907
|
+
},
|
|
3908
|
+
},
|
|
3909
|
+
[_vm._v("\n " + _vm._s(_vm.nativeInputValue) + "\n ")]
|
|
3910
|
+
)
|
|
3911
|
+
: _c(
|
|
3912
|
+
"textarea",
|
|
3913
|
+
_vm._b(
|
|
3914
|
+
{
|
|
3915
|
+
ref: "textarea",
|
|
3916
|
+
staticClass: "es-textarea__inner",
|
|
3917
|
+
style: _vm.textareaStyle,
|
|
3918
|
+
attrs: {
|
|
3919
|
+
tabindex: _vm.tabindex,
|
|
3920
|
+
disabled: _vm.inputDisabled,
|
|
3921
|
+
readonly: _vm.nativeReadonly,
|
|
3922
|
+
autocomplete: _vm.autoComplete || _vm.autocomplete,
|
|
3923
|
+
"aria-label": _vm.label,
|
|
3924
|
+
},
|
|
3925
|
+
on: {
|
|
3926
|
+
compositionstart: _vm.handleCompositionStart,
|
|
3927
|
+
compositionupdate: _vm.handleCompositionUpdate,
|
|
3928
|
+
compositionend: _vm.handleCompositionEnd,
|
|
3929
|
+
input: _vm.handleInput,
|
|
3930
|
+
focus: _vm.handleFocus,
|
|
3931
|
+
blur: _vm.handleBlur,
|
|
3932
|
+
change: _vm.handleChange,
|
|
3933
|
+
},
|
|
3934
|
+
},
|
|
3935
|
+
"textarea",
|
|
3936
|
+
_vm.$attrs,
|
|
3937
|
+
false
|
|
3938
|
+
)
|
|
3939
|
+
),
|
|
3940
|
+
],
|
|
3912
3941
|
_vm.isWordLimitVisible && _vm.type === "textarea"
|
|
3913
3942
|
? _c("span", { staticClass: "es-input__count" }, [
|
|
3914
3943
|
_vm._v(_vm._s(_vm.textLength) + "/" + _vm._s(_vm.upperLimit)),
|
|
@@ -3923,7 +3952,7 @@ var staticRenderFns = []
|
|
|
3923
3952
|
render._withStripped = true
|
|
3924
3953
|
|
|
3925
3954
|
|
|
3926
|
-
// CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=template&id=
|
|
3955
|
+
// CONCATENATED MODULE: ./packages/input/src/input.vue?vue&type=template&id=7d4041a6&
|
|
3927
3956
|
|
|
3928
3957
|
// EXTERNAL MODULE: ./src/mixins/emitter.js
|
|
3929
3958
|
var emitter = __webpack_require__(15);
|
|
@@ -4177,6 +4206,21 @@ var resize_event = __webpack_require__(39);
|
|
|
4177
4206
|
//
|
|
4178
4207
|
//
|
|
4179
4208
|
//
|
|
4209
|
+
//
|
|
4210
|
+
//
|
|
4211
|
+
//
|
|
4212
|
+
//
|
|
4213
|
+
//
|
|
4214
|
+
//
|
|
4215
|
+
//
|
|
4216
|
+
//
|
|
4217
|
+
//
|
|
4218
|
+
//
|
|
4219
|
+
//
|
|
4220
|
+
//
|
|
4221
|
+
//
|
|
4222
|
+
//
|
|
4223
|
+
//
|
|
4180
4224
|
|
|
4181
4225
|
|
|
4182
4226
|
|
|
@@ -4278,6 +4322,14 @@ var resize_event = __webpack_require__(39);
|
|
|
4278
4322
|
* @default false
|
|
4279
4323
|
*/
|
|
4280
4324
|
readonly: Boolean,
|
|
4325
|
+
/**
|
|
4326
|
+
* 仅绑定原生 input 的 readonly 属性(行为标志,供 select/cascader/picker 内部使用)
|
|
4327
|
+
* @type {Boolean}
|
|
4328
|
+
* @default false
|
|
4329
|
+
* @description 这些复合组件给内部 es-input 传的 readonly 是"禁止打字但保留输入框结构"
|
|
4330
|
+
* 的行为标志(普通态也常为 true),若走 readonly 会命中只读 div 分支导致布局破坏
|
|
4331
|
+
*/
|
|
4332
|
+
nativeReadonly: Boolean,
|
|
4281
4333
|
/**
|
|
4282
4334
|
* 输入框类型
|
|
4283
4335
|
* @type {String}
|
|
@@ -4453,6 +4505,15 @@ var resize_event = __webpack_require__(39);
|
|
|
4453
4505
|
nativeInputValue: function nativeInputValue() {
|
|
4454
4506
|
return this.value === null || this.value === undefined ? '' : String(this.value);
|
|
4455
4507
|
},
|
|
4508
|
+
|
|
4509
|
+
// 只读 div 用:密码型(含 showPassword 未点眼预览)按原生表现打码,
|
|
4510
|
+
// div 无法应用 type="password",直接以掩码字符回显
|
|
4511
|
+
maskedInputValue: function maskedInputValue() {
|
|
4512
|
+
if (this.type !== 'password' && !(this.showPassword && !this.passwordVisible)) {
|
|
4513
|
+
return this.nativeInputValue;
|
|
4514
|
+
}
|
|
4515
|
+
return '*'.repeat(this.nativeInputValue.length);
|
|
4516
|
+
},
|
|
4456
4517
|
showClear: function showClear() {
|
|
4457
4518
|
return this.clearable && !this.inputDisabled && !this.inputReadonly && this.nativeInputValue && (this.focused || this.hovering);
|
|
4458
4519
|
},
|
package/lib/select.js
CHANGED
|
@@ -5571,7 +5571,7 @@ var doDecrypt = function doDecrypt(_ref2) {
|
|
|
5571
5571
|
// ESM COMPAT FLAG
|
|
5572
5572
|
__webpack_require__.r(__webpack_exports__);
|
|
5573
5573
|
|
|
5574
|
-
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/select.vue?vue&type=template&id=
|
|
5574
|
+
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/select/src/select.vue?vue&type=template&id=f4dfce0a&
|
|
5575
5575
|
var render = function () {
|
|
5576
5576
|
var _vm = this
|
|
5577
5577
|
var _h = _vm.$createElement
|
|
@@ -5905,7 +5905,7 @@ var render = function () {
|
|
|
5905
5905
|
autocomplete: _vm.autocomplete,
|
|
5906
5906
|
size: _vm.selectSize,
|
|
5907
5907
|
disabled: _vm.selectDisabled,
|
|
5908
|
-
readonly: _vm.inputReadonly,
|
|
5908
|
+
"native-readonly": _vm.inputReadonly,
|
|
5909
5909
|
"validate-event": false,
|
|
5910
5910
|
tabindex: _vm.tabindex,
|
|
5911
5911
|
prefix: _vm.prefix,
|
|
@@ -6083,6 +6083,12 @@ var render = function () {
|
|
|
6083
6083
|
"es-scrollbar",
|
|
6084
6084
|
{
|
|
6085
6085
|
directives: [
|
|
6086
|
+
{
|
|
6087
|
+
name: "loading",
|
|
6088
|
+
rawName: "v-loading",
|
|
6089
|
+
value: _vm.isLoading,
|
|
6090
|
+
expression: "isLoading",
|
|
6091
|
+
},
|
|
6086
6092
|
{
|
|
6087
6093
|
name: "show",
|
|
6088
6094
|
rawName: "v-show",
|
|
@@ -6102,6 +6108,14 @@ var render = function () {
|
|
|
6102
6108
|
"wrap-class": "es-select-dropdown__wrap",
|
|
6103
6109
|
"view-class": "es-select-dropdown__list",
|
|
6104
6110
|
listener: true,
|
|
6111
|
+
"infinite-scroll": _vm.innerInfiniteScroll,
|
|
6112
|
+
"infinite-scroll-disabled":
|
|
6113
|
+
_vm.innerInfiniteScrollDisabled,
|
|
6114
|
+
"infinite-scroll-distance":
|
|
6115
|
+
_vm.infiniteScrollDistance,
|
|
6116
|
+
"infinite-scroll-delay": _vm.infiniteScrollDelay,
|
|
6117
|
+
"infinite-scroll-immediate":
|
|
6118
|
+
_vm.infiniteScrollImmediate,
|
|
6105
6119
|
},
|
|
6106
6120
|
},
|
|
6107
6121
|
[
|
|
@@ -6235,6 +6249,19 @@ var render = function () {
|
|
|
6235
6249
|
: _vm._e(),
|
|
6236
6250
|
]
|
|
6237
6251
|
}),
|
|
6252
|
+
_vm.lazyEnabled && _vm.lazyFinished
|
|
6253
|
+
? _c(
|
|
6254
|
+
"div",
|
|
6255
|
+
{
|
|
6256
|
+
staticClass: "es-select-dropdown__finished",
|
|
6257
|
+
},
|
|
6258
|
+
[
|
|
6259
|
+
_vm._v(
|
|
6260
|
+
"\n 没有更多数据了\n "
|
|
6261
|
+
),
|
|
6262
|
+
]
|
|
6263
|
+
)
|
|
6264
|
+
: _vm._e(),
|
|
6238
6265
|
],
|
|
6239
6266
|
2
|
|
6240
6267
|
),
|
|
@@ -6278,7 +6305,7 @@ var staticRenderFns = []
|
|
|
6278
6305
|
render._withStripped = true
|
|
6279
6306
|
|
|
6280
6307
|
|
|
6281
|
-
// CONCATENATED MODULE: ./packages/select/src/select.vue?vue&type=template&id=
|
|
6308
|
+
// CONCATENATED MODULE: ./packages/select/src/select.vue?vue&type=template&id=f4dfce0a&
|
|
6282
6309
|
|
|
6283
6310
|
// EXTERNAL MODULE: ./src/mixins/emitter.js
|
|
6284
6311
|
var emitter = __webpack_require__(15);
|
|
@@ -7099,6 +7126,19 @@ var _this = undefined;
|
|
|
7099
7126
|
//
|
|
7100
7127
|
//
|
|
7101
7128
|
//
|
|
7129
|
+
//
|
|
7130
|
+
//
|
|
7131
|
+
//
|
|
7132
|
+
//
|
|
7133
|
+
//
|
|
7134
|
+
//
|
|
7135
|
+
//
|
|
7136
|
+
//
|
|
7137
|
+
//
|
|
7138
|
+
//
|
|
7139
|
+
//
|
|
7140
|
+
//
|
|
7141
|
+
//
|
|
7102
7142
|
|
|
7103
7143
|
|
|
7104
7144
|
|
|
@@ -7541,7 +7581,70 @@ var _this = undefined;
|
|
|
7541
7581
|
* 选项值的键名
|
|
7542
7582
|
* @type {String}
|
|
7543
7583
|
*/
|
|
7544
|
-
valueKey: String
|
|
7584
|
+
valueKey: String,
|
|
7585
|
+
/**
|
|
7586
|
+
* 无限滚动回调:下拉列表滚动到底部时触发,用于分页加载更多选项
|
|
7587
|
+
* @type {Function}
|
|
7588
|
+
* @description 选项数据由外部接口分页提供时,在回调中请求下一页并追加到 data;
|
|
7589
|
+
* 没有更多数据时由外部置 infiniteScrollDisabled 为 true 停止触发
|
|
7590
|
+
*/
|
|
7591
|
+
infiniteScroll: Function,
|
|
7592
|
+
/**
|
|
7593
|
+
* 是否禁用无限滚动
|
|
7594
|
+
* @type {Boolean}
|
|
7595
|
+
* @default false
|
|
7596
|
+
*/
|
|
7597
|
+
infiniteScrollDisabled: Boolean,
|
|
7598
|
+
/**
|
|
7599
|
+
* 距底部多少 px 时触发无限滚动
|
|
7600
|
+
* @type {Number}
|
|
7601
|
+
* @default 0
|
|
7602
|
+
*/
|
|
7603
|
+
infiniteScrollDistance: {
|
|
7604
|
+
type: Number,
|
|
7605
|
+
default: 0
|
|
7606
|
+
},
|
|
7607
|
+
/**
|
|
7608
|
+
* 无限滚动回调的节流间隔(ms),透传给内部 es-scrollbar
|
|
7609
|
+
* @type {Number}
|
|
7610
|
+
* @default 200
|
|
7611
|
+
*/
|
|
7612
|
+
infiniteScrollDelay: {
|
|
7613
|
+
type: Number,
|
|
7614
|
+
default: 200
|
|
7615
|
+
},
|
|
7616
|
+
/**
|
|
7617
|
+
* 是否挂载后立即触发一次回调
|
|
7618
|
+
* @type {Boolean}
|
|
7619
|
+
* @default false
|
|
7620
|
+
* @description 与 es-scrollbar 默认值(true)不同:下拉的滚动条随 select 一起挂载,
|
|
7621
|
+
* 默认 true 会导致下拉尚未打开就自动请求首页,故这里默认关闭
|
|
7622
|
+
*/
|
|
7623
|
+
infiniteScrollImmediate: {
|
|
7624
|
+
type: Boolean,
|
|
7625
|
+
default: false
|
|
7626
|
+
},
|
|
7627
|
+
/**
|
|
7628
|
+
* 是否开启选项懒加载(分页加载)
|
|
7629
|
+
* @type {Boolean}
|
|
7630
|
+
* @default false
|
|
7631
|
+
* @description 对 tree 为 false 的平铺 ul 列表生效,两种数据来源均支持:
|
|
7632
|
+
* 1. url 取数:初始化请求第一页,下拉滚动到底部时自动续拉下一页并追加(内部复用无限滚动),
|
|
7633
|
+
* 请求期间列表显示 loading;某页返回条数小于 pageSize 视为加载完毕停止触发
|
|
7634
|
+
* 2. data 外部传入(未配置 url):本地分页,先渲染前 pageSize 条,
|
|
7635
|
+
* 滚动到底部时同步切片追加下一页;data 变化时重置回第一页
|
|
7636
|
+
*/
|
|
7637
|
+
lazy: Boolean,
|
|
7638
|
+
/**
|
|
7639
|
+
* 懒加载每页条数(url 取数时作为请求参数 pageNum/pageSize 随 param 一起 POST 给 url;
|
|
7640
|
+
* data 本地懒加载时作为每页切片条数)
|
|
7641
|
+
* @type {Number}
|
|
7642
|
+
* @default 50
|
|
7643
|
+
*/
|
|
7644
|
+
pageSize: {
|
|
7645
|
+
type: Number,
|
|
7646
|
+
default: 20
|
|
7647
|
+
}
|
|
7545
7648
|
},
|
|
7546
7649
|
|
|
7547
7650
|
computed: {
|
|
@@ -7555,6 +7658,26 @@ var _this = undefined;
|
|
|
7555
7658
|
return this.valueKey || (this.sysCode ? 'cciValue' : 'value');
|
|
7556
7659
|
},
|
|
7557
7660
|
|
|
7661
|
+
// 懒加载生效条件:开启 lazy、非树形(平铺 ul 列表)、有数据来源(url 取数或 data 传入)
|
|
7662
|
+
lazyEnabled: function lazyEnabled() {
|
|
7663
|
+
return this.lazy && !this.tree && (!!this.url || this.data.length > 0);
|
|
7664
|
+
},
|
|
7665
|
+
|
|
7666
|
+
// 本地懒加载:未配置 url、由外部 data 传入时的分页切片模式
|
|
7667
|
+
localLazyEnabled: function localLazyEnabled() {
|
|
7668
|
+
return this.lazyEnabled && !this.url;
|
|
7669
|
+
},
|
|
7670
|
+
|
|
7671
|
+
// 无限滚动回调:懒加载模式走内部分页续拉,否则透传外部 infiniteScroll
|
|
7672
|
+
innerInfiniteScroll: function innerInfiniteScroll() {
|
|
7673
|
+
return this.lazyEnabled ? this.loadMoreOptions : this.infiniteScroll;
|
|
7674
|
+
},
|
|
7675
|
+
|
|
7676
|
+
// 无限滚动禁用:外部禁用,或懒加载中/已加载完时避免重复触发
|
|
7677
|
+
innerInfiniteScrollDisabled: function innerInfiniteScrollDisabled() {
|
|
7678
|
+
return this.infiniteScrollDisabled || this.lazyEnabled && (this.isLoading || this.lazyFinished);
|
|
7679
|
+
},
|
|
7680
|
+
|
|
7558
7681
|
model: {
|
|
7559
7682
|
get: function get() {
|
|
7560
7683
|
if (this.multiple) {
|
|
@@ -7682,7 +7805,14 @@ var _this = undefined;
|
|
|
7682
7805
|
watch: {
|
|
7683
7806
|
data: {
|
|
7684
7807
|
handler: function handler(val) {
|
|
7685
|
-
this.
|
|
7808
|
+
if (this.localLazyEnabled) {
|
|
7809
|
+
// 本地懒加载:数据变化时重置回第一页重新切片
|
|
7810
|
+
this.lazyPageNum = 1;
|
|
7811
|
+
this.lazyFinished = false;
|
|
7812
|
+
this.applyLocalLazySlice();
|
|
7813
|
+
} else {
|
|
7814
|
+
this.results = val;
|
|
7815
|
+
}
|
|
7686
7816
|
},
|
|
7687
7817
|
|
|
7688
7818
|
deep: true
|
|
@@ -7865,7 +7995,12 @@ var _this = undefined;
|
|
|
7865
7995
|
isDestroy: false,
|
|
7866
7996
|
innerStyle: {},
|
|
7867
7997
|
results: this.data,
|
|
7868
|
-
|
|
7998
|
+
// 懒加载分页状态:已加载到的页码 / 是否已加载完
|
|
7999
|
+
lazyPageNum: 1,
|
|
8000
|
+
lazyFinished: false,
|
|
8001
|
+
_propsCache: new Map(),
|
|
8002
|
+
// 是否请求中(驱动 es-scrollbar 上的 v-loading)
|
|
8003
|
+
isLoading: false
|
|
7869
8004
|
};
|
|
7870
8005
|
},
|
|
7871
8006
|
created: function created() {
|
|
@@ -7896,6 +8031,10 @@ var _this = undefined;
|
|
|
7896
8031
|
|
|
7897
8032
|
this.$on('handleOptionClick', this.handleOptionSelect);
|
|
7898
8033
|
this.$on('setSelected', this.setSelected);
|
|
8034
|
+
// 本地懒加载:初始只渲染 data 的第一页切片
|
|
8035
|
+
if (this.localLazyEnabled) {
|
|
8036
|
+
this.applyLocalLazySlice();
|
|
8037
|
+
}
|
|
7899
8038
|
this.debouncedGetData();
|
|
7900
8039
|
},
|
|
7901
8040
|
mounted: function mounted() {
|
|
@@ -7996,26 +8135,88 @@ var _this = undefined;
|
|
|
7996
8135
|
* @param {Object} options - 配置选项
|
|
7997
8136
|
* @param {String} options.url - 接口地址
|
|
7998
8137
|
* @param {Object} options.params - 接口参数
|
|
8138
|
+
* @param {Boolean} options.append - 懒加载续拉下一页并追加(仅 lazyEnabled 时生效)
|
|
7999
8139
|
*/
|
|
8000
|
-
getData: function getData(
|
|
8140
|
+
getData: function getData() {
|
|
8001
8141
|
var _this10 = this;
|
|
8002
8142
|
|
|
8003
|
-
var
|
|
8143
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
8144
|
+
url = _ref.url,
|
|
8004
8145
|
_ref$params = _ref.params,
|
|
8005
|
-
params = _ref$params === undefined ? {} : _ref$params
|
|
8146
|
+
params = _ref$params === undefined ? {} : _ref$params,
|
|
8147
|
+
_ref$append = _ref.append,
|
|
8148
|
+
append = _ref$append === undefined ? false : _ref$append;
|
|
8006
8149
|
|
|
8007
8150
|
url = url || this.url;
|
|
8008
8151
|
params = selectvue_type_script_lang_js_extends({}, this.param, params);
|
|
8009
|
-
|
|
8152
|
+
if (!url) return;
|
|
8153
|
+
if (this.lazyEnabled) {
|
|
8154
|
+
if (append) {
|
|
8155
|
+
// 续拉下一页
|
|
8156
|
+
this.isLoading = true;
|
|
8157
|
+
params = selectvue_type_script_lang_js_extends({}, params, {
|
|
8158
|
+
pageNum: this.lazyPageNum + 1,
|
|
8159
|
+
pageSize: this.pageSize
|
|
8160
|
+
});
|
|
8161
|
+
} else {
|
|
8162
|
+
// 初始化/参数变化/远程搜索:重置分页请求第一页
|
|
8163
|
+
this.lazyPageNum = 1;
|
|
8164
|
+
this.lazyFinished = false;
|
|
8165
|
+
params = selectvue_type_script_lang_js_extends({}, params, { pageNum: 1, pageSize: this.pageSize });
|
|
8166
|
+
}
|
|
8167
|
+
}
|
|
8168
|
+
Object(ajax["a" /* ajax */])({
|
|
8010
8169
|
url: url,
|
|
8011
8170
|
method: 'POST',
|
|
8012
8171
|
data: params
|
|
8013
8172
|
}).then(function (res) {
|
|
8014
8173
|
if (res.rCode === 0) {
|
|
8015
|
-
|
|
8174
|
+
var rows = res.results || [];
|
|
8175
|
+
if (_this10.lazyEnabled && append) {
|
|
8176
|
+
_this10.results = _this10.results.concat(rows);
|
|
8177
|
+
_this10.lazyPageNum += 1;
|
|
8178
|
+
} else {
|
|
8179
|
+
_this10.results = rows;
|
|
8180
|
+
}
|
|
8181
|
+
// 续拉时返回条数不足一页视为已加载完,停止触发并提示没有更多
|
|
8182
|
+
// (首页不足一页属正常小数据量,不显示提示)
|
|
8183
|
+
if (_this10.lazyEnabled && append && rows.length < _this10.pageSize) {
|
|
8184
|
+
_this10.lazyFinished = true;
|
|
8185
|
+
}
|
|
8016
8186
|
}
|
|
8187
|
+
_this10.isLoading = false;
|
|
8188
|
+
}).catch(function () {
|
|
8189
|
+
_this10.isLoading = false;
|
|
8017
8190
|
});
|
|
8018
8191
|
},
|
|
8192
|
+
|
|
8193
|
+
/**
|
|
8194
|
+
* 懒加载:滚动到底部时加载下一页(由内部无限滚动触发,带防重入守卫)
|
|
8195
|
+
* 本地懒加载为同步切片追加,url 懒加载为异步续拉请求
|
|
8196
|
+
*/
|
|
8197
|
+
loadMoreOptions: function loadMoreOptions() {
|
|
8198
|
+
if (!this.lazyEnabled || this.isLoading || this.lazyFinished) return;
|
|
8199
|
+
if (this.localLazyEnabled) {
|
|
8200
|
+
this.lazyPageNum += 1;
|
|
8201
|
+
this.applyLocalLazySlice();
|
|
8202
|
+
} else {
|
|
8203
|
+
this.getData({ append: true });
|
|
8204
|
+
}
|
|
8205
|
+
},
|
|
8206
|
+
|
|
8207
|
+
/**
|
|
8208
|
+
* 本地懒加载:按当前 lazyPageNum 对 data 做切片渲染(0 ~ pageNum*pageSize),
|
|
8209
|
+
* 翻过页且切到末尾时置 lazyFinished 停止触发并显示没有更多提示
|
|
8210
|
+
* (首页即覆盖全量属正常小数据量,不置位不提示)
|
|
8211
|
+
*/
|
|
8212
|
+
applyLocalLazySlice: function applyLocalLazySlice() {
|
|
8213
|
+
var list = this.data || [];
|
|
8214
|
+
var end = this.lazyPageNum * this.pageSize;
|
|
8215
|
+
this.results = list.slice(0, end);
|
|
8216
|
+
if (this.lazyPageNum > 1 && end >= list.length) {
|
|
8217
|
+
this.lazyFinished = true;
|
|
8218
|
+
}
|
|
8219
|
+
},
|
|
8019
8220
|
handleComposition: function handleComposition(event) {
|
|
8020
8221
|
var _this11 = this;
|
|
8021
8222
|
|
package/lib/switch.js
CHANGED
|
@@ -3612,7 +3612,7 @@ module.exports = require("vue");
|
|
|
3612
3612
|
// ESM COMPAT FLAG
|
|
3613
3613
|
__webpack_require__.r(__webpack_exports__);
|
|
3614
3614
|
|
|
3615
|
-
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/switch/src/switch.vue?vue&type=template&id=
|
|
3615
|
+
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/switch/src/switch.vue?vue&type=template&id=dccc51b0&
|
|
3616
3616
|
var render = function () {
|
|
3617
3617
|
var _vm = this
|
|
3618
3618
|
var _h = _vm.$createElement
|
|
@@ -3750,7 +3750,7 @@ var staticRenderFns = []
|
|
|
3750
3750
|
render._withStripped = true
|
|
3751
3751
|
|
|
3752
3752
|
|
|
3753
|
-
// CONCATENATED MODULE: ./packages/switch/src/switch.vue?vue&type=template&id=
|
|
3753
|
+
// CONCATENATED MODULE: ./packages/switch/src/switch.vue?vue&type=template&id=dccc51b0&
|
|
3754
3754
|
|
|
3755
3755
|
// EXTERNAL MODULE: ./src/mixins/emitter.js
|
|
3756
3756
|
var emitter = __webpack_require__(15);
|
|
@@ -4137,7 +4137,10 @@ var migrating = __webpack_require__(46);
|
|
|
4137
4137
|
if (this.activeColor || this.inactiveColor) {
|
|
4138
4138
|
this.setBackgroundColor();
|
|
4139
4139
|
}
|
|
4140
|
-
|
|
4140
|
+
// 只读态下内部 input 被 v-if 移除,需防护
|
|
4141
|
+
if (this.$refs.input) {
|
|
4142
|
+
this.$refs.input.checked = this.checked;
|
|
4143
|
+
}
|
|
4141
4144
|
}
|
|
4142
4145
|
});
|
|
4143
4146
|
// CONCATENATED MODULE: ./packages/switch/src/switch.vue?vue&type=script&lang=js&
|