vxe-pc-ui 4.1.19 → 4.1.21
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/README.md +83 -2
- package/es/anchor/src/anchor-link.js +1 -1
- package/es/anchor/src/anchor.js +1 -1
- package/es/breadcrumb/src/breadcrumb.js +1 -1
- package/es/button/src/button-group.js +4 -1
- package/es/button/src/button.js +2 -1
- package/es/calendar/src/calendar.js +64 -32
- package/es/card/src/card.js +4 -3
- package/es/carousel/src/carousel-item.js +13 -3
- package/es/carousel/src/carousel.js +16 -8
- package/es/checkbox/src/checkbox.js +30 -14
- package/es/checkbox/src/group.js +17 -8
- package/es/collapse-pane/index.js +1 -1
- package/es/countdown/src/countdown.js +17 -8
- package/es/date-picker/src/date-picker.js +148 -69
- package/es/drawer/src/drawer.js +86 -46
- package/es/form/render/index.js +1 -2
- package/es/form/src/form-config-item.js +4 -3
- package/es/form/src/form-gather.js +5 -3
- package/es/form/src/form-item.js +15 -10
- package/es/form/src/form.js +11 -8
- package/es/form/src/render.js +2 -1
- package/es/form/src/util.js +2 -1
- package/es/icon/src/icon.js +3 -0
- package/es/icon/style.css +1 -1
- package/es/icon-picker/src/icon-picker.js +24 -11
- package/es/image/src/group.js +4 -1
- package/es/image/src/preview.js +1 -1
- package/es/input/src/input.js +131 -66
- package/es/layout-aside/src/layout-aside.js +1 -1
- package/es/list/src/list.js +7 -5
- package/es/list-design/src/list-design.js +1 -1
- package/es/list-design/src/list-view.js +1 -1
- package/es/loading/src/loading.js +4 -1
- package/es/menu/src/menu.js +4 -3
- package/es/number-input/src/number-input.js +100 -77
- package/es/pager/src/pager.js +85 -45
- package/es/password-input/src/password-input.js +2 -2
- package/es/print/src/page-break.js +11 -2
- package/es/print/src/print.js +6 -4
- package/es/pulldown/src/pulldown.js +19 -13
- package/es/radio/src/button.js +2 -2
- package/es/radio/src/group.js +8 -4
- package/es/row/src/row.js +1 -1
- package/es/select/src/optgroup.js +19 -10
- package/es/select/src/option.js +17 -9
- package/es/select/src/select.js +64 -41
- package/es/select/src/util.js +2 -2
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tabs/src/tab-pane.js +13 -3
- package/es/tabs/src/tabs.js +57 -47
- package/es/textarea/src/textarea.js +28 -10
- package/es/tooltip/src/tooltip.js +107 -78
- package/es/tree/src/tree.js +6 -3
- package/es/tree-select/src/tree-select.js +18 -10
- package/es/ui/index.js +1 -7
- package/es/ui/src/log.js +1 -1
- package/es/upload/src/upload.js +5 -5
- package/lib/anchor/src/anchor-link.js +1 -1
- package/lib/anchor/src/anchor-link.min.js +1 -1
- package/lib/anchor/src/anchor.js +1 -1
- package/lib/anchor/src/anchor.min.js +1 -1
- package/lib/breadcrumb/src/breadcrumb.js +1 -1
- package/lib/breadcrumb/src/breadcrumb.min.js +1 -1
- package/lib/button/src/button-group.js +4 -1
- package/lib/button/src/button-group.min.js +1 -1
- package/lib/button/src/button.js +2 -1
- package/lib/button/src/button.min.js +1 -1
- package/lib/calendar/src/calendar.js +42 -24
- package/lib/calendar/src/calendar.min.js +1 -1
- package/lib/card/src/card.js +6 -5
- package/lib/card/src/card.min.js +1 -1
- package/lib/carousel/src/carousel-item.js +16 -3
- package/lib/carousel/src/carousel-item.min.js +1 -1
- package/lib/carousel/src/carousel.js +18 -8
- package/lib/carousel/src/carousel.min.js +1 -1
- package/lib/checkbox/src/checkbox.js +16 -12
- package/lib/checkbox/src/checkbox.min.js +1 -1
- package/lib/checkbox/src/group.js +10 -7
- package/lib/checkbox/src/group.min.js +1 -1
- package/lib/collapse-pane/index.js +1 -1
- package/lib/collapse-pane/index.min.js +1 -1
- package/lib/countdown/src/countdown.js +15 -7
- package/lib/countdown/src/countdown.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +124 -62
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/drawer/src/drawer.js +15 -30
- package/lib/drawer/src/drawer.min.js +1 -1
- package/lib/form/render/index.js +1 -4
- package/lib/form/render/index.min.js +1 -1
- package/lib/form/src/form-config-item.js +4 -5
- package/lib/form/src/form-config-item.min.js +1 -1
- package/lib/form/src/form-gather.js +11 -9
- package/lib/form/src/form-gather.min.js +1 -1
- package/lib/form/src/form-item.js +11 -12
- package/lib/form/src/form-item.min.js +1 -1
- package/lib/form/src/form.js +7 -7
- package/lib/form/src/form.min.js +1 -1
- package/lib/form/src/render.js +2 -1
- package/lib/form/src/util.js +2 -1
- package/lib/icon/src/icon.js +3 -0
- package/lib/icon/src/icon.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/icon-picker/src/icon-picker.js +22 -12
- package/lib/icon-picker/src/icon-picker.min.js +1 -1
- package/lib/image/src/group.js +4 -1
- package/lib/image/src/group.min.js +1 -1
- package/lib/image/src/preview.js +1 -1
- package/lib/image/src/preview.min.js +1 -1
- package/lib/index.umd.js +884 -649
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +79 -51
- package/lib/input/src/input.min.js +1 -1
- package/lib/layout-aside/src/layout-aside.js +1 -1
- package/lib/layout-aside/src/layout-aside.min.js +1 -1
- package/lib/list/src/list.js +9 -5
- package/lib/list/src/list.min.js +1 -1
- package/lib/list-design/src/list-design.js +1 -1
- package/lib/list-design/src/list-design.min.js +1 -1
- package/lib/list-design/src/list-view.js +1 -1
- package/lib/list-design/src/list-view.min.js +1 -1
- package/lib/loading/src/loading.js +4 -1
- package/lib/loading/src/loading.min.js +1 -1
- package/lib/menu/src/menu.js +4 -3
- package/lib/menu/src/menu.min.js +1 -1
- package/lib/number-input/src/number-input.js +67 -69
- package/lib/number-input/src/number-input.min.js +1 -1
- package/lib/pager/src/pager.js +40 -39
- package/lib/pager/src/pager.min.js +1 -1
- package/lib/password-input/src/password-input.js +2 -2
- package/lib/print/src/page-break.js +14 -2
- package/lib/print/src/page-break.min.js +1 -1
- package/lib/print/src/print.js +8 -6
- package/lib/print/src/print.min.js +1 -1
- package/lib/pulldown/src/pulldown.js +19 -13
- package/lib/pulldown/src/pulldown.min.js +1 -1
- package/lib/radio/src/button.js +2 -2
- package/lib/radio/src/group.js +8 -4
- package/lib/radio/src/group.min.js +1 -1
- package/lib/row/src/row.js +1 -1
- package/lib/row/src/row.min.js +1 -1
- package/lib/select/src/optgroup.js +12 -9
- package/lib/select/src/optgroup.min.js +1 -1
- package/lib/select/src/option.js +9 -7
- package/lib/select/src/option.min.js +1 -1
- package/lib/select/src/select.js +52 -41
- package/lib/select/src/select.min.js +1 -1
- package/lib/select/src/util.js +2 -2
- package/lib/select/src/util.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tabs/src/tab-pane.js +16 -3
- package/lib/tabs/src/tab-pane.min.js +1 -1
- package/lib/tabs/src/tabs.js +62 -50
- package/lib/tabs/src/tabs.min.js +1 -1
- package/lib/textarea/src/textarea.js +4 -4
- package/lib/tooltip/src/tooltip.js +96 -88
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/tree/src/tree.js +2 -2
- package/lib/tree/src/tree.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +13 -8
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +3 -10
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/upload/src/upload.js +5 -5
- package/lib/upload/src/upload.min.js +1 -1
- package/package.json +2 -2
- package/packages/anchor/src/anchor-link.ts +2 -2
- package/packages/anchor/src/anchor.ts +2 -2
- package/packages/breadcrumb/src/breadcrumb.ts +2 -2
- package/packages/button/src/button-group.ts +4 -1
- package/packages/button/src/button.ts +6 -5
- package/packages/calendar/src/calendar.ts +67 -35
- package/packages/card/src/card.ts +6 -4
- package/packages/carousel/src/carousel-item.ts +19 -4
- package/packages/carousel/src/carousel.ts +19 -11
- package/packages/checkbox/src/checkbox.ts +34 -15
- package/packages/checkbox/src/group.ts +22 -10
- package/packages/collapse-pane/index.ts +1 -1
- package/packages/countdown/src/countdown.ts +20 -11
- package/packages/date-picker/src/date-picker.ts +160 -80
- package/packages/drawer/src/drawer.ts +91 -50
- package/packages/form/render/index.ts +1 -3
- package/packages/form/src/form-config-item.ts +4 -3
- package/packages/form/src/form-gather.ts +5 -3
- package/packages/form/src/form-item.ts +15 -10
- package/packages/form/src/form.ts +12 -10
- package/packages/form/src/render.ts +2 -1
- package/packages/form/src/util.ts +2 -1
- package/packages/icon/src/icon.ts +3 -0
- package/packages/icon-picker/src/icon-picker.ts +31 -17
- package/packages/image/src/group.ts +4 -1
- package/packages/image/src/preview.ts +2 -2
- package/packages/input/src/input.ts +138 -75
- package/packages/layout-aside/src/layout-aside.ts +2 -2
- package/packages/list/src/list.ts +12 -11
- package/packages/list-design/src/list-design.ts +2 -2
- package/packages/list-design/src/list-view.ts +2 -2
- package/packages/loading/src/loading.ts +5 -2
- package/packages/menu/src/menu.ts +5 -4
- package/packages/number-input/src/number-input.ts +102 -79
- package/packages/pager/src/pager.ts +91 -50
- package/packages/password-input/src/password-input.ts +2 -2
- package/packages/print/src/page-break.ts +18 -4
- package/packages/print/src/print.ts +10 -5
- package/packages/pulldown/src/pulldown.ts +28 -22
- package/packages/radio/src/button.ts +2 -2
- package/packages/radio/src/group.ts +9 -5
- package/packages/row/src/row.ts +2 -2
- package/packages/select/src/optgroup.ts +22 -13
- package/packages/select/src/option.ts +18 -10
- package/packages/select/src/select.ts +79 -52
- package/packages/select/src/util.ts +3 -3
- package/packages/tabs/src/tab-pane.ts +20 -5
- package/packages/tabs/src/tabs.ts +59 -49
- package/packages/textarea/src/textarea.ts +28 -10
- package/packages/tooltip/src/tooltip.ts +118 -84
- package/packages/tree/src/tree.ts +7 -4
- package/packages/tree-select/src/tree-select.ts +25 -16
- package/packages/ui/index.ts +0 -7
- package/packages/upload/src/upload.ts +6 -6
- package/types/components/calendar.d.ts +6 -0
- package/types/components/carousel.d.ts +5 -0
- package/types/components/countdown.d.ts +4 -0
- package/types/components/date-picker.d.ts +23 -5
- package/types/components/drawer.d.ts +0 -1
- package/types/components/form.d.ts +4 -2
- package/types/components/icon-picker.d.ts +4 -0
- package/types/components/input.d.ts +9 -1
- package/types/components/list.d.ts +1 -0
- package/types/components/number-input.d.ts +6 -2
- package/types/components/optgroup.d.ts +10 -4
- package/types/components/pulldown.d.ts +5 -1
- package/types/components/select.d.ts +4 -0
- package/types/components/tabs.d.ts +4 -0
- package/types/components/toolbar.d.ts +5 -0
- package/types/components/tooltip.d.ts +4 -0
- package/types/components/tree-select.d.ts +4 -0
- package/types/ui/index.d.ts +0 -22
- /package/es/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
- /package/es/icon/style/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/es/icon/style/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
- /package/es/icon/style/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/es/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/es/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
- /package/es/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/lib/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
- /package/lib/{collapse-pane → collapse}/src/collapse-pane.min.js +0 -0
- /package/lib/icon/style/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
- /package/lib/icon/style/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/lib/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
- /package/lib/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
- /package/lib/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
- /package/packages/{collapse-pane → collapse}/src/collapse-pane.ts +0 -0
|
@@ -7,16 +7,25 @@ import { toStringTimeDate, getDateQuarter } from '../../date-picker/src/util'
|
|
|
7
7
|
import { handleNumber, toFloatValueFixed } from '../../number-input/src/util'
|
|
8
8
|
import { getSlotVNs } from '../..//ui/src/vn'
|
|
9
9
|
|
|
10
|
-
import type { VxeInputConstructor, VxeInputEmits, InputReactData, InputMethods, VxeInputPropTypes, InputPrivateRef, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines, VxeTableConstructor, VxeTablePrivateMethods, VxeModalConstructor, VxeModalMethods, VxeDatePickerDefines } from '../../../types'
|
|
10
|
+
import type { VxeInputConstructor, VxeInputEmits, InputReactData, InputMethods, ValueOf, InputInternalData, VxeInputPropTypes, InputPrivateRef, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines, VxeTableConstructor, VxeTablePrivateMethods, VxeDrawerConstructor, VxeDrawerMethods, VxeModalConstructor, VxeModalMethods, VxeDatePickerDefines } from '../../../types'
|
|
11
11
|
|
|
12
12
|
export default defineComponent({
|
|
13
13
|
name: 'VxeInput',
|
|
14
14
|
props: {
|
|
15
15
|
modelValue: [String, Number, Date] as PropType<VxeInputPropTypes.ModelValue>,
|
|
16
|
-
immediate: {
|
|
16
|
+
immediate: {
|
|
17
|
+
type: Boolean as PropType<VxeInputPropTypes.Immediate>,
|
|
18
|
+
default: true
|
|
19
|
+
},
|
|
17
20
|
name: String as PropType<VxeInputPropTypes.Name>,
|
|
18
|
-
type: {
|
|
19
|
-
|
|
21
|
+
type: {
|
|
22
|
+
type: String as PropType<VxeInputPropTypes.Type>,
|
|
23
|
+
default: 'text'
|
|
24
|
+
},
|
|
25
|
+
clearable: {
|
|
26
|
+
type: Boolean as PropType<VxeInputPropTypes.Clearable>,
|
|
27
|
+
default: () => getConfig().input.clearable
|
|
28
|
+
},
|
|
20
29
|
readonly: {
|
|
21
30
|
type: Boolean as PropType<VxeInputPropTypes.Readonly>,
|
|
22
31
|
default: null
|
|
@@ -27,11 +36,17 @@ export default defineComponent({
|
|
|
27
36
|
},
|
|
28
37
|
placeholder: String as PropType<VxeInputPropTypes.Placeholder>,
|
|
29
38
|
maxLength: [String, Number] as PropType<VxeInputPropTypes.MaxLength>,
|
|
30
|
-
autoComplete: {
|
|
39
|
+
autoComplete: {
|
|
40
|
+
type: String as PropType<VxeInputPropTypes.AutoComplete>,
|
|
41
|
+
default: 'off'
|
|
42
|
+
},
|
|
31
43
|
align: String as PropType<VxeInputPropTypes.Align>,
|
|
32
44
|
form: String as PropType<VxeInputPropTypes.Form>,
|
|
33
45
|
className: String as PropType<VxeInputPropTypes.ClassName>,
|
|
34
|
-
size: {
|
|
46
|
+
size: {
|
|
47
|
+
type: String as PropType<VxeInputPropTypes.Size>,
|
|
48
|
+
default: () => getConfig().input.size || getConfig().size
|
|
49
|
+
},
|
|
35
50
|
multiple: Boolean as PropType<VxeInputPropTypes.Multiple>,
|
|
36
51
|
|
|
37
52
|
// text
|
|
@@ -39,33 +54,69 @@ export default defineComponent({
|
|
|
39
54
|
countMethod: Function as PropType<VxeInputPropTypes.CountMethod>,
|
|
40
55
|
|
|
41
56
|
// number、integer、float
|
|
42
|
-
min: {
|
|
43
|
-
|
|
57
|
+
min: {
|
|
58
|
+
type: [String, Number] as PropType<VxeInputPropTypes.Min>,
|
|
59
|
+
default: null
|
|
60
|
+
},
|
|
61
|
+
max: {
|
|
62
|
+
type: [String, Number] as PropType<VxeInputPropTypes.Max>,
|
|
63
|
+
default: null
|
|
64
|
+
},
|
|
44
65
|
step: [String, Number] as PropType<VxeInputPropTypes.Step>,
|
|
45
|
-
exponential: {
|
|
66
|
+
exponential: {
|
|
67
|
+
type: Boolean as PropType<VxeInputPropTypes.Exponential>,
|
|
68
|
+
default: () => getConfig().input.exponential
|
|
69
|
+
},
|
|
46
70
|
|
|
47
71
|
// number、integer、float、password
|
|
48
|
-
controls: {
|
|
72
|
+
controls: {
|
|
73
|
+
type: Boolean as PropType<VxeInputPropTypes.Controls>,
|
|
74
|
+
default: () => getConfig().input.controls
|
|
75
|
+
},
|
|
49
76
|
|
|
50
77
|
// float
|
|
51
|
-
digits: {
|
|
78
|
+
digits: {
|
|
79
|
+
type: [String, Number] as PropType<VxeInputPropTypes.Digits>,
|
|
80
|
+
default: () => getConfig().input.digits
|
|
81
|
+
},
|
|
52
82
|
|
|
53
83
|
// date、week、month、quarter、year
|
|
54
|
-
startDate: {
|
|
55
|
-
|
|
84
|
+
startDate: {
|
|
85
|
+
type: [String, Number, Date] as PropType<VxeInputPropTypes.MinDate>,
|
|
86
|
+
default: () => getConfig().input.startDate
|
|
87
|
+
},
|
|
88
|
+
endDate: {
|
|
89
|
+
type: [String, Number, Date] as PropType<VxeInputPropTypes.MaxDate>,
|
|
90
|
+
default: () => getConfig().input.endDate
|
|
91
|
+
},
|
|
56
92
|
minDate: [String, Number, Date] as PropType<VxeInputPropTypes.MinDate>,
|
|
57
93
|
maxDate: [String, Number, Date] as PropType<VxeInputPropTypes.MaxDate>,
|
|
58
94
|
// 已废弃 startWeek,被 startDay 替换
|
|
59
95
|
startWeek: Number as PropType<VxeInputPropTypes.StartDay>,
|
|
60
|
-
startDay: {
|
|
96
|
+
startDay: {
|
|
97
|
+
type: [String, Number] as PropType<VxeInputPropTypes.StartDay>,
|
|
98
|
+
default: () => getConfig().input.startDay
|
|
99
|
+
},
|
|
61
100
|
labelFormat: String as PropType<VxeInputPropTypes.LabelFormat>,
|
|
62
101
|
valueFormat: String as PropType<VxeInputPropTypes.ValueFormat>,
|
|
63
|
-
editable: {
|
|
64
|
-
|
|
65
|
-
|
|
102
|
+
editable: {
|
|
103
|
+
type: Boolean as PropType<VxeInputPropTypes.Editable>,
|
|
104
|
+
default: true
|
|
105
|
+
},
|
|
106
|
+
festivalMethod: {
|
|
107
|
+
type: Function as PropType<VxeInputPropTypes.FestivalMethod>,
|
|
108
|
+
default: () => getConfig().input.festivalMethod
|
|
109
|
+
},
|
|
110
|
+
disabledMethod: {
|
|
111
|
+
type: Function as PropType<VxeInputPropTypes.DisabledMethod>,
|
|
112
|
+
default: () => getConfig().input.disabledMethod
|
|
113
|
+
},
|
|
66
114
|
|
|
67
115
|
// week
|
|
68
|
-
selectDay: {
|
|
116
|
+
selectDay: {
|
|
117
|
+
type: [String, Number] as PropType<VxeInputPropTypes.SelectDay>,
|
|
118
|
+
default: () => getConfig().input.selectDay
|
|
119
|
+
},
|
|
69
120
|
|
|
70
121
|
prefixIcon: String as PropType<VxeInputPropTypes.PrefixIcon>,
|
|
71
122
|
suffixIcon: String as PropType<VxeInputPropTypes.SuffixIcon>,
|
|
@@ -104,26 +155,23 @@ export default defineComponent({
|
|
|
104
155
|
setup (props, context) {
|
|
105
156
|
const { slots, emit } = context
|
|
106
157
|
|
|
107
|
-
const $xeModal = inject<VxeModalConstructor & VxeModalMethods | null>('$xeModal', null)
|
|
108
|
-
const $
|
|
109
|
-
const $
|
|
158
|
+
const $xeModal = inject<(VxeModalConstructor & VxeModalMethods) | null>('$xeModal', null)
|
|
159
|
+
const $xeDrawer = inject<(VxeDrawerConstructor & VxeDrawerMethods) | null>('$xeDrawer', null)
|
|
160
|
+
const $xeTable = inject<(VxeTableConstructor & VxeTablePrivateMethods) | null>('$xeTable', null)
|
|
161
|
+
const $xeForm = inject<(VxeFormConstructor & VxeFormPrivateMethods)| null>('$xeForm', null)
|
|
110
162
|
const formItemInfo = inject<VxeFormDefines.ProvideItemInfo | null>('xeFormItemInfo', null)
|
|
111
163
|
|
|
112
164
|
const xID = XEUtils.uniqueId()
|
|
113
165
|
|
|
114
166
|
const { computeSize } = useSize(props)
|
|
115
167
|
|
|
116
|
-
const yearSize = 12
|
|
117
|
-
const monthSize = 20
|
|
118
|
-
const quarterSize = 8
|
|
119
|
-
|
|
120
168
|
const reactData = reactive<InputReactData>({
|
|
121
169
|
initialized: false,
|
|
122
170
|
panelIndex: 0,
|
|
123
171
|
showPwd: false,
|
|
124
172
|
visiblePanel: false,
|
|
125
173
|
isAniVisible: false,
|
|
126
|
-
panelStyle:
|
|
174
|
+
panelStyle: {},
|
|
127
175
|
panelPlacement: '',
|
|
128
176
|
isActivated: false,
|
|
129
177
|
inputValue: props.modelValue,
|
|
@@ -135,6 +183,14 @@ export default defineComponent({
|
|
|
135
183
|
currentDate: null
|
|
136
184
|
})
|
|
137
185
|
|
|
186
|
+
const internalData: InputInternalData = {
|
|
187
|
+
yearSize: 12,
|
|
188
|
+
monthSize: 20,
|
|
189
|
+
quarterSize: 8,
|
|
190
|
+
hpTimeout: undefined,
|
|
191
|
+
dnTimeout: undefined
|
|
192
|
+
}
|
|
193
|
+
|
|
138
194
|
const refElem = ref() as Ref<HTMLDivElement>
|
|
139
195
|
const refInputTarget = ref() as Ref<HTMLInputElement>
|
|
140
196
|
const refInputPanel = ref() as Ref<HTMLDivElement>
|
|
@@ -151,6 +207,7 @@ export default defineComponent({
|
|
|
151
207
|
props,
|
|
152
208
|
context,
|
|
153
209
|
reactData,
|
|
210
|
+
internalData,
|
|
154
211
|
getRefMaps: () => refMaps
|
|
155
212
|
} as unknown as VxeInputConstructor
|
|
156
213
|
|
|
@@ -171,7 +228,7 @@ export default defineComponent({
|
|
|
171
228
|
if (XEUtils.isBoolean(globalTransfer)) {
|
|
172
229
|
return globalTransfer
|
|
173
230
|
}
|
|
174
|
-
if ($xeTable || $xeModal || $xeForm) {
|
|
231
|
+
if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
|
|
175
232
|
return true
|
|
176
233
|
}
|
|
177
234
|
}
|
|
@@ -372,11 +429,12 @@ export default defineComponent({
|
|
|
372
429
|
if (isDatePickerType) {
|
|
373
430
|
return labelFormat || dateValueFormat || getI18n(`vxe.input.date.labelFormat.${props.type}`)
|
|
374
431
|
}
|
|
375
|
-
return
|
|
432
|
+
return ''
|
|
376
433
|
})
|
|
377
434
|
|
|
378
435
|
const computeYearList = computed(() => {
|
|
379
436
|
const { selectMonth, currentDate } = reactData
|
|
437
|
+
const { yearSize } = internalData
|
|
380
438
|
const years: VxeDatePickerDefines.DateYearItem[] = []
|
|
381
439
|
if (selectMonth && currentDate) {
|
|
382
440
|
const currFullYear = currentDate.getFullYear()
|
|
@@ -474,6 +532,7 @@ export default defineComponent({
|
|
|
474
532
|
|
|
475
533
|
const computeQuarterList = computed(() => {
|
|
476
534
|
const { selectMonth, currentDate } = reactData
|
|
535
|
+
const { quarterSize } = internalData
|
|
477
536
|
const quarters: VxeDatePickerDefines.DateQuarterItem[] = []
|
|
478
537
|
if (selectMonth && currentDate) {
|
|
479
538
|
const currFullYear = currentDate.getFullYear()
|
|
@@ -505,6 +564,7 @@ export default defineComponent({
|
|
|
505
564
|
|
|
506
565
|
const computeMonthList = computed(() => {
|
|
507
566
|
const { selectMonth, currentDate } = reactData
|
|
567
|
+
const { monthSize } = internalData
|
|
508
568
|
const months: VxeDatePickerDefines.DateMonthItem[] = []
|
|
509
569
|
if (selectMonth && currentDate) {
|
|
510
570
|
const currFullYear = currentDate.getFullYear()
|
|
@@ -662,13 +722,6 @@ export default defineComponent({
|
|
|
662
722
|
return getI18n('vxe.base.pleaseInput')
|
|
663
723
|
})
|
|
664
724
|
|
|
665
|
-
const computeInpMaxlength = computed(() => {
|
|
666
|
-
const isNumType = computeIsNumType.value
|
|
667
|
-
const inpMaxLength = computeInpMaxLength.value
|
|
668
|
-
// 数值最大长度限制 16 位,包含小数
|
|
669
|
-
return isNumType && !XEUtils.toNumber(inpMaxLength) ? 16 : inpMaxLength
|
|
670
|
-
})
|
|
671
|
-
|
|
672
725
|
const computeInpImmediate = computed(() => {
|
|
673
726
|
const { type, immediate } = props
|
|
674
727
|
return immediate || !(type === 'text' || type === 'number' || type === 'integer' || type === 'float')
|
|
@@ -710,13 +763,13 @@ export default defineComponent({
|
|
|
710
763
|
|
|
711
764
|
const getNumberValue = (val: any) => {
|
|
712
765
|
const { type, exponential } = props
|
|
713
|
-
const
|
|
766
|
+
const inpMaxLength = computeInpMaxLength.value
|
|
714
767
|
const digitsValue = computeDigitsValue.value
|
|
715
768
|
const restVal = (type === 'float' ? toFloatValueFixed(val, digitsValue) : XEUtils.toValueString(val))
|
|
716
769
|
if (exponential && (val === restVal || XEUtils.toValueString(val).toLowerCase() === XEUtils.toNumber(restVal).toExponential())) {
|
|
717
770
|
return val
|
|
718
771
|
}
|
|
719
|
-
return restVal.slice(0,
|
|
772
|
+
return restVal.slice(0, inpMaxLength)
|
|
720
773
|
}
|
|
721
774
|
|
|
722
775
|
const triggerEvent = (evnt: Event & { type: 'input' | 'change' | 'keydown' | 'keyup' | 'wheel' | 'click' | 'focus' | 'blur' }) => {
|
|
@@ -724,7 +777,7 @@ export default defineComponent({
|
|
|
724
777
|
inputMethods.dispatchEvent(evnt.type, { value: inputValue }, evnt)
|
|
725
778
|
}
|
|
726
779
|
|
|
727
|
-
const
|
|
780
|
+
const handleChange = (value: string, evnt: Event | { type: string }) => {
|
|
728
781
|
reactData.inputValue = value
|
|
729
782
|
emit('update:modelValue', value)
|
|
730
783
|
inputMethods.dispatchEvent('input', { value }, evnt as any)
|
|
@@ -743,7 +796,7 @@ export default defineComponent({
|
|
|
743
796
|
reactData.inputValue = value
|
|
744
797
|
if (!isDatePickerType) {
|
|
745
798
|
if (inpImmediate) {
|
|
746
|
-
|
|
799
|
+
handleChange(value, evnt)
|
|
747
800
|
} else {
|
|
748
801
|
inputMethods.dispatchEvent('input', { value }, evnt)
|
|
749
802
|
}
|
|
@@ -780,12 +833,10 @@ export default defineComponent({
|
|
|
780
833
|
}
|
|
781
834
|
}
|
|
782
835
|
|
|
783
|
-
let hidePanelTimeout: number
|
|
784
|
-
|
|
785
836
|
const hidePanel = (): Promise<void> => {
|
|
786
837
|
return new Promise(resolve => {
|
|
787
838
|
reactData.visiblePanel = false
|
|
788
|
-
|
|
839
|
+
internalData.hpTimeout = window.setTimeout(() => {
|
|
789
840
|
reactData.isAniVisible = false
|
|
790
841
|
resolve()
|
|
791
842
|
}, 350)
|
|
@@ -802,7 +853,7 @@ export default defineComponent({
|
|
|
802
853
|
if (isNumType || ['text', 'search', 'password'].indexOf(type) > -1) {
|
|
803
854
|
focus()
|
|
804
855
|
}
|
|
805
|
-
|
|
856
|
+
handleChange('', evnt)
|
|
806
857
|
inputMethods.dispatchEvent('clear', { value }, evnt)
|
|
807
858
|
}
|
|
808
859
|
|
|
@@ -872,7 +923,7 @@ export default defineComponent({
|
|
|
872
923
|
if (inputValue) {
|
|
873
924
|
const validValue = toFloatValueFixed(inputValue, digitsValue)
|
|
874
925
|
if (inputValue !== validValue) {
|
|
875
|
-
|
|
926
|
+
handleChange(validValue, { type: 'init' })
|
|
876
927
|
}
|
|
877
928
|
}
|
|
878
929
|
}
|
|
@@ -934,19 +985,19 @@ export default defineComponent({
|
|
|
934
985
|
datetimeRest.push(item)
|
|
935
986
|
}
|
|
936
987
|
})
|
|
937
|
-
|
|
988
|
+
handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' })
|
|
938
989
|
} else {
|
|
939
990
|
// 如果是日期类型
|
|
940
991
|
if (dateMultipleValue.some(val => XEUtils.isEqual(val, inpVal))) {
|
|
941
|
-
|
|
992
|
+
handleChange(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' })
|
|
942
993
|
} else {
|
|
943
|
-
|
|
994
|
+
handleChange(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' })
|
|
944
995
|
}
|
|
945
996
|
}
|
|
946
997
|
} else {
|
|
947
998
|
// 如果为单选
|
|
948
999
|
if (!XEUtils.isEqual(modelValue, inpVal)) {
|
|
949
|
-
|
|
1000
|
+
handleChange(inpVal, { type: 'update' })
|
|
950
1001
|
}
|
|
951
1002
|
}
|
|
952
1003
|
}
|
|
@@ -973,7 +1024,7 @@ export default defineComponent({
|
|
|
973
1024
|
inpNumVal = inpStringVal
|
|
974
1025
|
}
|
|
975
1026
|
}
|
|
976
|
-
|
|
1027
|
+
handleChange(getNumberValue(inpNumVal), { type: 'check' })
|
|
977
1028
|
}
|
|
978
1029
|
} else if (isDatePickerType) {
|
|
979
1030
|
if (inputValue) {
|
|
@@ -982,7 +1033,7 @@ export default defineComponent({
|
|
|
982
1033
|
if (type === 'time') {
|
|
983
1034
|
inpDateVal = XEUtils.toDateString(inpDateVal, dateLabelFormat)
|
|
984
1035
|
if (inputValue !== inpDateVal) {
|
|
985
|
-
|
|
1036
|
+
handleChange(inpDateVal, { type: 'check' })
|
|
986
1037
|
}
|
|
987
1038
|
reactData.inputValue = inpDateVal
|
|
988
1039
|
} else {
|
|
@@ -1008,7 +1059,7 @@ export default defineComponent({
|
|
|
1008
1059
|
dateRevert()
|
|
1009
1060
|
}
|
|
1010
1061
|
} else {
|
|
1011
|
-
|
|
1062
|
+
handleChange('', { type: 'check' })
|
|
1012
1063
|
}
|
|
1013
1064
|
}
|
|
1014
1065
|
}
|
|
@@ -1018,7 +1069,7 @@ export default defineComponent({
|
|
|
1018
1069
|
const { inputValue } = reactData
|
|
1019
1070
|
const inpImmediate = computeInpImmediate.value
|
|
1020
1071
|
if (!inpImmediate) {
|
|
1021
|
-
|
|
1072
|
+
handleChange(inputValue, evnt)
|
|
1022
1073
|
}
|
|
1023
1074
|
afterCheckValue()
|
|
1024
1075
|
if (!reactData.visiblePanel) {
|
|
@@ -1063,13 +1114,11 @@ export default defineComponent({
|
|
|
1063
1114
|
emitInputEvent(getNumberValue(restNum), evnt as (Event & { type: 'input' }))
|
|
1064
1115
|
}
|
|
1065
1116
|
|
|
1066
|
-
let downbumTimeout: number
|
|
1067
|
-
|
|
1068
1117
|
const numberNextEvent = (evnt: Event) => {
|
|
1069
1118
|
const isDisabled = computeIsDisabled.value
|
|
1070
1119
|
const isReadonly = computeIsReadonly.value
|
|
1071
1120
|
const isDisabledSubtractNumber = computeIsDisabledSubtractNumber.value
|
|
1072
|
-
|
|
1121
|
+
numberStopDown()
|
|
1073
1122
|
if (!isDisabled && !isReadonly && !isDisabledSubtractNumber) {
|
|
1074
1123
|
numberChange(false, evnt)
|
|
1075
1124
|
}
|
|
@@ -1077,7 +1126,7 @@ export default defineComponent({
|
|
|
1077
1126
|
}
|
|
1078
1127
|
|
|
1079
1128
|
const numberDownNextEvent = (evnt: Event) => {
|
|
1080
|
-
|
|
1129
|
+
internalData.dnTimeout = window.setTimeout(() => {
|
|
1081
1130
|
numberNextEvent(evnt)
|
|
1082
1131
|
numberDownNextEvent(evnt)
|
|
1083
1132
|
}, 60)
|
|
@@ -1087,7 +1136,7 @@ export default defineComponent({
|
|
|
1087
1136
|
const isDisabled = computeIsDisabled.value
|
|
1088
1137
|
const isReadonly = computeIsReadonly.value
|
|
1089
1138
|
const isDisabledAddNumber = computeIsDisabledAddNumber.value
|
|
1090
|
-
|
|
1139
|
+
numberStopDown()
|
|
1091
1140
|
if (!isDisabled && !isReadonly && !isDisabledAddNumber) {
|
|
1092
1141
|
numberChange(true, evnt)
|
|
1093
1142
|
}
|
|
@@ -1139,11 +1188,15 @@ export default defineComponent({
|
|
|
1139
1188
|
// 数值
|
|
1140
1189
|
|
|
1141
1190
|
const numberStopDown = () => {
|
|
1142
|
-
|
|
1191
|
+
const { dnTimeout } = internalData
|
|
1192
|
+
if (dnTimeout) {
|
|
1193
|
+
clearTimeout(dnTimeout)
|
|
1194
|
+
internalData.dnTimeout = undefined
|
|
1195
|
+
}
|
|
1143
1196
|
}
|
|
1144
1197
|
|
|
1145
1198
|
const numberDownPrevEvent = (evnt: Event) => {
|
|
1146
|
-
|
|
1199
|
+
internalData.dnTimeout = window.setTimeout(() => {
|
|
1147
1200
|
numberPrevEvent(evnt)
|
|
1148
1201
|
numberDownPrevEvent(evnt)
|
|
1149
1202
|
}, 60)
|
|
@@ -1158,7 +1211,7 @@ export default defineComponent({
|
|
|
1158
1211
|
} else {
|
|
1159
1212
|
numberNextEvent(evnt)
|
|
1160
1213
|
}
|
|
1161
|
-
|
|
1214
|
+
internalData.dnTimeout = window.setTimeout(() => {
|
|
1162
1215
|
if (isPrevNumber) {
|
|
1163
1216
|
numberDownPrevEvent(evnt)
|
|
1164
1217
|
} else {
|
|
@@ -1211,6 +1264,7 @@ export default defineComponent({
|
|
|
1211
1264
|
const datePrevEvent = (evnt: Event) => {
|
|
1212
1265
|
const { type } = props
|
|
1213
1266
|
const { datePanelType, selectMonth } = reactData
|
|
1267
|
+
const { yearSize } = internalData
|
|
1214
1268
|
const isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value
|
|
1215
1269
|
if (!isDisabledPrevDateBtn) {
|
|
1216
1270
|
if (type === 'year') {
|
|
@@ -1246,6 +1300,7 @@ export default defineComponent({
|
|
|
1246
1300
|
const dateNextEvent = (evnt: Event) => {
|
|
1247
1301
|
const { type } = props
|
|
1248
1302
|
const { datePanelType, selectMonth } = reactData
|
|
1303
|
+
const { yearSize } = internalData
|
|
1249
1304
|
const isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value
|
|
1250
1305
|
if (!isDisabledNextDateBtn) {
|
|
1251
1306
|
if (type === 'year') {
|
|
@@ -1424,10 +1479,10 @@ export default defineComponent({
|
|
|
1424
1479
|
datetimeRest.push(item)
|
|
1425
1480
|
}
|
|
1426
1481
|
})
|
|
1427
|
-
|
|
1482
|
+
handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' })
|
|
1428
1483
|
} else {
|
|
1429
1484
|
// 如果是日期类型
|
|
1430
|
-
|
|
1485
|
+
handleChange(dateMultipleValue.join(','), { type: 'update' })
|
|
1431
1486
|
}
|
|
1432
1487
|
} else {
|
|
1433
1488
|
dateChange(dateValue || reactData.currentDate)
|
|
@@ -1540,7 +1595,9 @@ export default defineComponent({
|
|
|
1540
1595
|
reactData.datetimePanelValue = reactData.datePanelValue || XEUtils.getWhatDay(Date.now(), 0, 'first')
|
|
1541
1596
|
nextTick(() => {
|
|
1542
1597
|
const timeBodyElem = refInputTimeBody.value
|
|
1543
|
-
XEUtils.arrayEach(timeBodyElem.querySelectorAll('li.is--selected'),
|
|
1598
|
+
XEUtils.arrayEach(timeBodyElem.querySelectorAll('li.is--selected'), (elem) => {
|
|
1599
|
+
updateTimePos(elem)
|
|
1600
|
+
})
|
|
1544
1601
|
})
|
|
1545
1602
|
}
|
|
1546
1603
|
}
|
|
@@ -1629,13 +1686,17 @@ export default defineComponent({
|
|
|
1629
1686
|
|
|
1630
1687
|
const showPanel = () => {
|
|
1631
1688
|
const { visiblePanel } = reactData
|
|
1689
|
+
const { hpTimeout } = internalData
|
|
1632
1690
|
const isDisabled = computeIsDisabled.value
|
|
1633
1691
|
const isDatePickerType = computeIsDatePickerType.value
|
|
1634
1692
|
if (!isDisabled && !visiblePanel) {
|
|
1635
1693
|
if (!reactData.initialized) {
|
|
1636
1694
|
reactData.initialized = true
|
|
1637
1695
|
}
|
|
1638
|
-
|
|
1696
|
+
if (hpTimeout) {
|
|
1697
|
+
clearTimeout(hpTimeout)
|
|
1698
|
+
internalData.hpTimeout = undefined
|
|
1699
|
+
}
|
|
1639
1700
|
reactData.isActivated = true
|
|
1640
1701
|
reactData.isAniVisible = true
|
|
1641
1702
|
if (isDatePickerType) {
|
|
@@ -1792,13 +1853,13 @@ export default defineComponent({
|
|
|
1792
1853
|
}]
|
|
1793
1854
|
}, extraItem && extraItem.label
|
|
1794
1855
|
? [
|
|
1795
|
-
h('span', label),
|
|
1856
|
+
h('span', `${label || ''}`),
|
|
1796
1857
|
h('span', {
|
|
1797
1858
|
class: ['vxe-input--date-label--extra', extraItem.important ? 'is-important' : '', extraItem.className],
|
|
1798
1859
|
style: extraItem.style
|
|
1799
1860
|
}, XEUtils.toValueString(extraItem.label))
|
|
1800
1861
|
]
|
|
1801
|
-
: label)
|
|
1862
|
+
: [`${label || ''}`])
|
|
1802
1863
|
]
|
|
1803
1864
|
const festivalLabel = festivalItem.label
|
|
1804
1865
|
if (festivalLabel) {
|
|
@@ -1821,7 +1882,7 @@ export default defineComponent({
|
|
|
1821
1882
|
}
|
|
1822
1883
|
return labels
|
|
1823
1884
|
}
|
|
1824
|
-
return label
|
|
1885
|
+
return [`${label || ''}`]
|
|
1825
1886
|
}
|
|
1826
1887
|
|
|
1827
1888
|
const renderDateDayTable = () => {
|
|
@@ -2392,10 +2453,12 @@ export default defineComponent({
|
|
|
2392
2453
|
return createCommentVNode()
|
|
2393
2454
|
}
|
|
2394
2455
|
|
|
2456
|
+
const dispatchEvent = (type: ValueOf<VxeInputEmits>, params: Record<string, any>, evnt: Event | null) => {
|
|
2457
|
+
emit(type, createEvent(evnt, { $input: $xeInput }, params))
|
|
2458
|
+
}
|
|
2459
|
+
|
|
2395
2460
|
inputMethods = {
|
|
2396
|
-
dispatchEvent
|
|
2397
|
-
emit(type, createEvent(evnt, { $input: $xeInput }, params))
|
|
2398
|
-
},
|
|
2461
|
+
dispatchEvent,
|
|
2399
2462
|
|
|
2400
2463
|
focus () {
|
|
2401
2464
|
const inputElem = refInputTarget.value
|
|
@@ -2437,7 +2500,7 @@ export default defineComponent({
|
|
|
2437
2500
|
const isCountError = computeIsCountError.value
|
|
2438
2501
|
const inputCount = computeInputCount.value
|
|
2439
2502
|
const inputReadonly = computeInputReadonly.value
|
|
2440
|
-
const
|
|
2503
|
+
const inpMaxLength = computeInpMaxLength.value
|
|
2441
2504
|
const inputType = computeInputType.value
|
|
2442
2505
|
const inpPlaceholder = computeInpPlaceholder.value
|
|
2443
2506
|
const isClearable = computeIsClearable.value
|
|
@@ -2471,7 +2534,7 @@ export default defineComponent({
|
|
|
2471
2534
|
name,
|
|
2472
2535
|
type: inputType,
|
|
2473
2536
|
placeholder: inpPlaceholder,
|
|
2474
|
-
maxlength:
|
|
2537
|
+
maxlength: inpMaxLength,
|
|
2475
2538
|
readonly: inputReadonly,
|
|
2476
2539
|
disabled: isDisabled,
|
|
2477
2540
|
autocomplete: autoComplete || autocomplete,
|
|
@@ -2494,13 +2557,11 @@ export default defineComponent({
|
|
|
2494
2557
|
class: ['vxe-input--count', {
|
|
2495
2558
|
'is--error': isCountError
|
|
2496
2559
|
}]
|
|
2497
|
-
}, countMethod ? `${countMethod({ value: inputValue })}` : `${inputCount}${
|
|
2560
|
+
}, countMethod ? `${countMethod({ value: inputValue })}` : `${inputCount}${inpMaxLength ? `/${inpMaxLength}` : ''}`)
|
|
2498
2561
|
: createCommentVNode()
|
|
2499
2562
|
])
|
|
2500
2563
|
}
|
|
2501
2564
|
|
|
2502
|
-
$xeInput.renderVN = renderVN
|
|
2503
|
-
|
|
2504
2565
|
watch(() => props.modelValue, (val) => {
|
|
2505
2566
|
reactData.inputValue = val
|
|
2506
2567
|
changeValue()
|
|
@@ -2546,6 +2607,8 @@ export default defineComponent({
|
|
|
2546
2607
|
|
|
2547
2608
|
initValue()
|
|
2548
2609
|
|
|
2610
|
+
$xeInput.renderVN = renderVN
|
|
2611
|
+
|
|
2549
2612
|
return $xeInput
|
|
2550
2613
|
},
|
|
2551
2614
|
render () {
|
|
@@ -29,19 +29,16 @@ export default defineComponent({
|
|
|
29
29
|
|
|
30
30
|
const { computeSize } = useSize(props)
|
|
31
31
|
|
|
32
|
-
const reactData = reactive({
|
|
32
|
+
const reactData = reactive<ListReactData>({
|
|
33
33
|
scrollYLoad: false,
|
|
34
34
|
bodyHeight: 0,
|
|
35
35
|
rowHeight: 0,
|
|
36
36
|
topSpaceHeight: 0,
|
|
37
37
|
items: []
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const refElem = ref() as Ref<HTMLDivElement>
|
|
41
|
-
const refVirtualWrapper = ref() as Ref<HTMLDivElement>
|
|
42
|
-
const refVirtualBody = ref() as Ref<HTMLDivElement>
|
|
38
|
+
})
|
|
43
39
|
|
|
44
40
|
const internalData: ListInternalData = {
|
|
41
|
+
resizeObserver: undefined,
|
|
45
42
|
fullData: [],
|
|
46
43
|
lastScrollLeft: 0,
|
|
47
44
|
lastScrollTop: 0,
|
|
@@ -54,6 +51,10 @@ export default defineComponent({
|
|
|
54
51
|
}
|
|
55
52
|
}
|
|
56
53
|
|
|
54
|
+
const refElem = ref() as Ref<HTMLDivElement>
|
|
55
|
+
const refVirtualWrapper = ref() as Ref<HTMLDivElement>
|
|
56
|
+
const refVirtualBody = ref() as Ref<HTMLDivElement>
|
|
57
|
+
|
|
57
58
|
const refMaps: ListPrivateRef = {
|
|
58
59
|
refElem
|
|
59
60
|
}
|
|
@@ -157,7 +158,7 @@ export default defineComponent({
|
|
|
157
158
|
* @param {Number} scrollLeft 左距离
|
|
158
159
|
* @param {Number} scrollTop 上距离
|
|
159
160
|
*/
|
|
160
|
-
const scrollTo = (scrollLeft: number | null, scrollTop?: number | null)
|
|
161
|
+
const scrollTo = (scrollLeft: number | null, scrollTop?: number | null) => {
|
|
161
162
|
const scrollBodyElem = refVirtualWrapper.value
|
|
162
163
|
if (XEUtils.isNumber(scrollLeft)) {
|
|
163
164
|
scrollBodyElem.scrollLeft = scrollLeft
|
|
@@ -166,7 +167,7 @@ export default defineComponent({
|
|
|
166
167
|
scrollBodyElem.scrollTop = scrollTop
|
|
167
168
|
}
|
|
168
169
|
if (reactData.scrollYLoad) {
|
|
169
|
-
return new Promise(resolve => {
|
|
170
|
+
return new Promise<void>(resolve => {
|
|
170
171
|
setTimeout(() => {
|
|
171
172
|
nextTick(() => {
|
|
172
173
|
resolve()
|
|
@@ -296,21 +297,21 @@ export default defineComponent({
|
|
|
296
297
|
recalculate().then(() => refreshScroll())
|
|
297
298
|
})
|
|
298
299
|
|
|
299
|
-
let resizeObserver: ResizeObserver
|
|
300
|
-
|
|
301
300
|
nextTick(() => {
|
|
302
301
|
globalEvents.on($xeList, 'resize', () => {
|
|
303
302
|
recalculate()
|
|
304
303
|
})
|
|
305
304
|
if (props.autoResize) {
|
|
306
305
|
const el = refElem.value
|
|
307
|
-
resizeObserver = globalResize.create(() => recalculate())
|
|
306
|
+
const resizeObserver = globalResize.create(() => recalculate())
|
|
308
307
|
resizeObserver.observe(el)
|
|
308
|
+
internalData.resizeObserver = resizeObserver
|
|
309
309
|
}
|
|
310
310
|
listMethods.loadData(props.data || [])
|
|
311
311
|
})
|
|
312
312
|
|
|
313
313
|
onUnmounted(() => {
|
|
314
|
+
const { resizeObserver } = internalData
|
|
314
315
|
if (resizeObserver) {
|
|
315
316
|
resizeObserver.disconnect()
|
|
316
317
|
}
|
|
@@ -330,8 +330,6 @@ export default defineComponent({
|
|
|
330
330
|
])
|
|
331
331
|
}
|
|
332
332
|
|
|
333
|
-
$xeListDesign.renderVN = renderVN
|
|
334
|
-
|
|
335
333
|
provide('$xeListDesign', $xeListDesign)
|
|
336
334
|
|
|
337
335
|
watch(() => props.config, (value) => {
|
|
@@ -344,6 +342,8 @@ export default defineComponent({
|
|
|
344
342
|
loadConfig(props.config)
|
|
345
343
|
}
|
|
346
344
|
|
|
345
|
+
$xeListDesign.renderVN = renderVN
|
|
346
|
+
|
|
347
347
|
return $xeListDesign
|
|
348
348
|
},
|
|
349
349
|
render () {
|
|
@@ -455,8 +455,6 @@ export default defineComponent({
|
|
|
455
455
|
])
|
|
456
456
|
}
|
|
457
457
|
|
|
458
|
-
$xeListView.renderVN = renderVN
|
|
459
|
-
|
|
460
458
|
watch(() => props.config, (value) => {
|
|
461
459
|
loadConfig(value || {})
|
|
462
460
|
})
|
|
@@ -475,6 +473,8 @@ export default defineComponent({
|
|
|
475
473
|
})
|
|
476
474
|
}
|
|
477
475
|
|
|
476
|
+
$xeListView.renderVN = renderVN
|
|
477
|
+
|
|
478
478
|
return $xeListView
|
|
479
479
|
},
|
|
480
480
|
render () {
|