taro-react-uilib 1.2.2 → 1.3.0-0
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/CHANGELOG.md +24 -0
- package/dist/components/AmountInput/index.js +2 -0
- package/dist/components/AmountInput/index.js.map +1 -0
- package/dist/components/AmountKeyboard/index.js +2 -0
- package/dist/components/AmountKeyboard/index.js.map +1 -0
- package/dist/components/Badge/index.js +2 -0
- package/dist/components/Badge/index.js.map +1 -0
- package/dist/components/Button/DotJump.js +2 -0
- package/dist/components/Button/DotJump.js.map +1 -0
- package/dist/components/Button/index.js +1 -1
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Collapse/index.js +2 -0
- package/dist/components/Collapse/index.js.map +1 -0
- package/dist/components/Picker/Picker.js +1 -1
- package/dist/components/Picker/Picker.js.map +1 -1
- package/dist/components/Picker/PickerSlot.js +2 -0
- package/dist/components/Picker/PickerSlot.js.map +1 -0
- package/dist/components/Picker/index.js +1 -1
- package/dist/components/Picker/index.js.map +1 -1
- package/dist/components/src/index.js +1 -1
- package/dist/components/src/utils/index.js.map +1 -1
- package/dist/index.js +6 -7
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +6 -7
- package/dist/index.umd.js.map +1 -1
- package/dist/styles/components/amountinput.scss +107 -0
- package/dist/styles/components/amountkeyboard.scss +127 -0
- package/dist/styles/components/badge.scss +11 -0
- package/dist/styles/components/button.scss +5 -0
- package/dist/styles/components/collapse.scss +17 -0
- package/dist/styles/components/images/closeKeyboard.png +0 -0
- package/dist/styles/components/index.scss +4 -1
- package/dist/styles/components/picker.scss +99 -0
- package/dist/styles/components/space.scss +2 -6
- package/lib/components/AmountInput/index.js +51 -0
- package/lib/components/AmountInput/index.js.map +1 -0
- package/lib/components/AmountKeyboard/index.js +97 -0
- package/lib/components/AmountKeyboard/index.js.map +1 -0
- package/lib/components/Badge/index.js +11 -0
- package/lib/components/Badge/index.js.map +1 -0
- package/lib/components/Button/DotJump.js +13 -0
- package/lib/components/Button/DotJump.js.map +1 -0
- package/lib/components/Button/index.js +6 -3
- package/lib/components/Button/index.js.map +1 -1
- package/lib/components/Collapse/index.js +43 -0
- package/lib/components/Collapse/index.js.map +1 -0
- package/lib/components/Picker/Picker.js +3 -3
- package/lib/components/Picker/Picker.js.map +1 -1
- package/lib/components/{PickerSlot/index.js → Picker/PickerSlot.js} +6 -6
- package/lib/components/Picker/PickerSlot.js.map +1 -0
- package/lib/components/Picker/index.js +3 -2
- package/lib/components/Picker/index.js.map +1 -1
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/utils/index.js +12 -0
- package/lib/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/types/components/Button/DotJump.d.ts +7 -0
- package/types/components/Button/index.d.ts +3 -0
- package/types/components/Captcha/index.d.ts +1 -1
- package/types/components/Collapse/index.d.ts +12 -0
- package/types/components/Picker/Picker.d.ts +3 -3
- package/types/components/Picker/PickerSlot.d.ts +24 -0
- package/types/components/Picker/index.d.ts +4 -5
- package/types/index.d.ts +4 -0
- package/types/utils/index.d.ts +1 -0
- package/dist/components/PickerSlot/index.js +0 -2
- package/dist/components/PickerSlot/index.js.map +0 -1
- package/dist/styles/components/pickerslot.scss +0 -98
- package/lib/components/PickerSlot/index.js.map +0 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
@import "../../styles/themes/variable.scss";
|
|
2
|
+
|
|
3
|
+
#{$xh-prefix}-amount-input {
|
|
4
|
+
display: flex;
|
|
5
|
+
padding: 0 40px;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
background-color: #FFF;
|
|
8
|
+
&-top {
|
|
9
|
+
display: flex;
|
|
10
|
+
justify-content: space-between;
|
|
11
|
+
width: 100%;
|
|
12
|
+
padding: 32px 0;
|
|
13
|
+
border-bottom: 2px solid #EEE;
|
|
14
|
+
align-items: baseline;
|
|
15
|
+
&-unit {
|
|
16
|
+
font-size: 36px;
|
|
17
|
+
}
|
|
18
|
+
&-amount {
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: space-between;
|
|
22
|
+
flex: 1;
|
|
23
|
+
height: 128px;
|
|
24
|
+
position: relative;
|
|
25
|
+
&-num {
|
|
26
|
+
font-size: 64px;
|
|
27
|
+
display: flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
font-family: Bebas Neue-Bold, Bebas Neue;
|
|
30
|
+
color: #333;
|
|
31
|
+
font-weight: bold;
|
|
32
|
+
&-key {
|
|
33
|
+
display: inline-block;
|
|
34
|
+
}
|
|
35
|
+
&-placeholder {
|
|
36
|
+
font-size: 28px;
|
|
37
|
+
font-family: PingFang SC-Regular, PingFang SC;
|
|
38
|
+
font-weight: 400;
|
|
39
|
+
color: #B9B9B9;
|
|
40
|
+
position: absolute;
|
|
41
|
+
left: 32px;
|
|
42
|
+
}
|
|
43
|
+
&-cursor {
|
|
44
|
+
&.focus {
|
|
45
|
+
width: 4px;
|
|
46
|
+
height: 50px;
|
|
47
|
+
background-color: var(--color-primary);
|
|
48
|
+
display: inline-block;
|
|
49
|
+
margin-left: 4px;
|
|
50
|
+
animation: CursorShine 1s linear infinite;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
&-shortcut {
|
|
55
|
+
padding: 0 20px;
|
|
56
|
+
height: 58px;
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
font-size: 26px;
|
|
60
|
+
font-family: PingFang SC-Regular, PingFang SC;
|
|
61
|
+
font-weight: 400;
|
|
62
|
+
color: var(--color-primary);
|
|
63
|
+
border-radius: 30px;
|
|
64
|
+
border: 2px solid var(--color-primary);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
&-error {
|
|
69
|
+
font-size: 20px;
|
|
70
|
+
font-family: PingFang SC-Regular, PingFang SC;
|
|
71
|
+
font-weight: 400;
|
|
72
|
+
color: var(--color-warning);
|
|
73
|
+
margin-top: 8px;
|
|
74
|
+
}
|
|
75
|
+
&-bottom {
|
|
76
|
+
color: #999;
|
|
77
|
+
display: flex;
|
|
78
|
+
justify-content: space-between;
|
|
79
|
+
margin: 20px 0;
|
|
80
|
+
&-range {
|
|
81
|
+
font-size: 26px;
|
|
82
|
+
font-family: PingFang SC-Regular, PingFang SC;
|
|
83
|
+
font-weight: 400;
|
|
84
|
+
&-number {
|
|
85
|
+
color: #333;
|
|
86
|
+
display: inline-block;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
&-tip {
|
|
90
|
+
font-size: 24px;
|
|
91
|
+
&-update {
|
|
92
|
+
display: inline-block;
|
|
93
|
+
color: var(--color-primary);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
@keyframes CursorShine {
|
|
101
|
+
from {
|
|
102
|
+
opacity: 1;
|
|
103
|
+
}
|
|
104
|
+
to {
|
|
105
|
+
opacity: 0;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
@import './badge.scss';
|
|
2
|
+
@import './space.scss';
|
|
3
|
+
@import "../../styles/themes/variable.scss";
|
|
4
|
+
|
|
5
|
+
#{$xh-prefix}-amount-keyboard {
|
|
6
|
+
position: fixed;
|
|
7
|
+
bottom: 0;
|
|
8
|
+
left: 0;
|
|
9
|
+
right: 0;
|
|
10
|
+
z-index: 999;
|
|
11
|
+
padding-bottom: constant(safe-area-inset-bottom);
|
|
12
|
+
padding-bottom: env(safe-area-inset-bottom);
|
|
13
|
+
background-color: #FFF;
|
|
14
|
+
|
|
15
|
+
&-header {
|
|
16
|
+
border-top: 1PX solid $border-color;
|
|
17
|
+
display: flex;
|
|
18
|
+
justify-content: flex-start;
|
|
19
|
+
&-wrapper {
|
|
20
|
+
width: 100%;
|
|
21
|
+
&-text {
|
|
22
|
+
font-size: 32px;
|
|
23
|
+
font-family: PingFang SC-Regular, PingFang SC;
|
|
24
|
+
font-weight: 400;
|
|
25
|
+
color: #333333;
|
|
26
|
+
white-space: nowrap;
|
|
27
|
+
overflow-x: auto;
|
|
28
|
+
padding: 0 40px;
|
|
29
|
+
height: 122px;
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
32
|
+
width: 100%;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&-close {
|
|
38
|
+
align-self: flex-end;
|
|
39
|
+
border: 0;
|
|
40
|
+
text-align: center;
|
|
41
|
+
font-size: 30px;
|
|
42
|
+
font-family: PingFang SC-Regular, PingFang SC;
|
|
43
|
+
font-weight: 400;
|
|
44
|
+
color: $color-primary-dark;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&-body {
|
|
48
|
+
width: 100%;
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-wrap: wrap;
|
|
51
|
+
box-sizing: border-box;
|
|
52
|
+
position: relative;
|
|
53
|
+
&-key {
|
|
54
|
+
width: 187px;
|
|
55
|
+
height: 112px;
|
|
56
|
+
box-sizing: border-box;
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
background: #ffffff;
|
|
61
|
+
font-size: 42px;
|
|
62
|
+
font-family: DIN Alternate-Bold, DIN Alternate;
|
|
63
|
+
font-weight: bold;
|
|
64
|
+
color: #000000;
|
|
65
|
+
border-right: 1PX solid var(--border-color);
|
|
66
|
+
border-top: 1PX solid var(--border-color);
|
|
67
|
+
&:active {
|
|
68
|
+
background-color: #eee;
|
|
69
|
+
}
|
|
70
|
+
&.delete {
|
|
71
|
+
background-image: url("./images/backspace.png");
|
|
72
|
+
background-size: 25%;
|
|
73
|
+
background-repeat: no-repeat;
|
|
74
|
+
background-position: center;
|
|
75
|
+
box-shadow: none;
|
|
76
|
+
}
|
|
77
|
+
&.close {
|
|
78
|
+
background-image: url("./images/closeKeyboard.png");
|
|
79
|
+
background-size: 25%;
|
|
80
|
+
background-repeat: no-repeat;
|
|
81
|
+
background-position: center;
|
|
82
|
+
box-shadow: none;
|
|
83
|
+
}
|
|
84
|
+
&.none {
|
|
85
|
+
visibility: hidden;
|
|
86
|
+
pointer-events: none;
|
|
87
|
+
}
|
|
88
|
+
&.confirm-fake {
|
|
89
|
+
background: $btn-color;
|
|
90
|
+
position: absolute;
|
|
91
|
+
bottom: 0;
|
|
92
|
+
right: 0;
|
|
93
|
+
width: 192px;
|
|
94
|
+
height: 336px;
|
|
95
|
+
color: #FFF;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
.xh-button-webutton {
|
|
99
|
+
background-color: #fff;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
.slide-up {
|
|
104
|
+
&-enter,
|
|
105
|
+
&-appear {
|
|
106
|
+
opacity: 0;
|
|
107
|
+
transform: translateY(100%);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
&-enter-active,
|
|
111
|
+
&-appear-active {
|
|
112
|
+
opacity: 1;
|
|
113
|
+
transform: translateY(0);
|
|
114
|
+
transition: transform 0.3s, opacity 0.3s;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
&-exit {
|
|
118
|
+
opacity: 1;
|
|
119
|
+
transform: translateY(0);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
&-exit-active {
|
|
123
|
+
opacity: 0;
|
|
124
|
+
transform: translateY(100%);
|
|
125
|
+
transition: transform 0.3s, opacity 0.3s;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@import './list.scss';
|
|
2
|
+
@import "../../styles/themes/variable.scss";
|
|
3
|
+
|
|
4
|
+
#{$xh-prefix}-collapse {
|
|
5
|
+
&-summary {
|
|
6
|
+
&.open {
|
|
7
|
+
.xh-list-extra-icon {
|
|
8
|
+
transition: transform 500ms;
|
|
9
|
+
transform: rotate(90deg);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
&-detail {
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
transition: height 500ms;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
Binary file
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
@import './amountinput.scss';
|
|
2
|
+
@import './amountkeyboard.scss';
|
|
1
3
|
@import './animated.scss';
|
|
4
|
+
@import './badge.scss';
|
|
2
5
|
@import './bankicon.scss';
|
|
3
6
|
@import './button.scss';
|
|
4
7
|
@import './captcha.scss';
|
|
5
8
|
@import './checkbox.scss';
|
|
9
|
+
@import './collapse.scss';
|
|
6
10
|
@import './dialog.scss';
|
|
7
11
|
@import './dialogref.scss';
|
|
8
12
|
@import './fade.scss';
|
|
@@ -15,7 +19,6 @@
|
|
|
15
19
|
@import './page.scss';
|
|
16
20
|
@import './passwordinput.scss';
|
|
17
21
|
@import './picker.scss';
|
|
18
|
-
@import './pickerslot.scss';
|
|
19
22
|
@import './popup.scss';
|
|
20
23
|
@import './progress.scss';
|
|
21
24
|
@import './radio.scss';
|
|
@@ -39,4 +39,103 @@
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
#{$xh-prefix}-picker-list {
|
|
43
|
+
flex: 1;
|
|
44
|
+
position: relative;
|
|
45
|
+
height: 252PX;
|
|
46
|
+
overflow: hidden;
|
|
47
|
+
text-align: center;
|
|
48
|
+
touch-action: none;
|
|
49
|
+
|
|
50
|
+
.xh-picker-list-panel {
|
|
51
|
+
transform-style: preserve-3d;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.xh-picker-mask {
|
|
55
|
+
position: absolute;
|
|
56
|
+
top: 0;
|
|
57
|
+
left: 0;
|
|
58
|
+
right: 0;
|
|
59
|
+
bottom: 0;
|
|
60
|
+
background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4)), linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.4));
|
|
61
|
+
background-position: top, bottom;
|
|
62
|
+
background-size: 100% 108PX;
|
|
63
|
+
background-repeat: no-repeat;
|
|
64
|
+
z-index: 3;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.xh-picker-indicator {
|
|
68
|
+
position: absolute;
|
|
69
|
+
top: 108PX;
|
|
70
|
+
height: 36PX;
|
|
71
|
+
width: 100%;
|
|
72
|
+
border: #d8d8d8;
|
|
73
|
+
border-left: 0;
|
|
74
|
+
border-right: 0;
|
|
75
|
+
color: #1a1a1a;
|
|
76
|
+
font-size: 4px;
|
|
77
|
+
z-index: 3;
|
|
78
|
+
border-top: 1px solid $border-color;
|
|
79
|
+
border-bottom: 1px solid $border-color;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.xh-picker-content,
|
|
83
|
+
.xh-picker-roller {
|
|
84
|
+
position: absolute;
|
|
85
|
+
top: 108PX;
|
|
86
|
+
width: 100%;
|
|
87
|
+
height: 36PX;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.xh-picker-content {
|
|
91
|
+
background: #fff;
|
|
92
|
+
z-index: 2;
|
|
93
|
+
overflow: hidden;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.xh-picker-item,
|
|
97
|
+
.xh-picker-roller-item {
|
|
98
|
+
white-space: nowrap;
|
|
99
|
+
overflow: hidden;
|
|
100
|
+
text-overflow: ellipsis;
|
|
101
|
+
height: 36PX;
|
|
102
|
+
line-height: 36PX;
|
|
103
|
+
color: #d8d8d8;
|
|
104
|
+
font-size: 14PX;
|
|
105
|
+
text-align: center;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.xh-picker-item {
|
|
109
|
+
font-size: 16PX;
|
|
110
|
+
background: #fff;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.xh-picker-roller {
|
|
114
|
+
z-index: 1;
|
|
115
|
+
transform-style: preserve-3d;
|
|
116
|
+
|
|
117
|
+
.xh-picker-roller-item {
|
|
118
|
+
backface-visibility: hidden;
|
|
119
|
+
position: absolute;
|
|
120
|
+
top: 0;
|
|
121
|
+
width: 100%;
|
|
122
|
+
color: #333;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.xh-picker-roller-item-title {
|
|
126
|
+
display: block;
|
|
127
|
+
width: 100%;
|
|
128
|
+
height: 36PX;
|
|
129
|
+
line-height: 36PX;
|
|
130
|
+
color: #1a1a1a;
|
|
131
|
+
font-size: 16PX;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.xh-picker-roller-item-hidden {
|
|
135
|
+
visibility: hidden;
|
|
136
|
+
opacity: 0;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
42
141
|
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
@import "../../styles/themes/variable.scss";
|
|
2
|
-
@import "../../styles/themes/default.scss";
|
|
3
|
-
@import "../../styles/themes/animation.scss";
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
$space-item-prefix-cls: #{$xh-prefix}-space-item;
|
|
7
|
-
#{$space-prefix-cls} {
|
|
3
|
+
#{$xh-prefix}-space {
|
|
8
4
|
display: inline-flex;
|
|
9
5
|
|
|
10
6
|
&-vertical {
|
|
@@ -30,7 +26,7 @@ $space-item-prefix-cls: #{$xh-prefix}-space-item;
|
|
|
30
26
|
}
|
|
31
27
|
}
|
|
32
28
|
|
|
33
|
-
#{$
|
|
29
|
+
#{$xh-prefix}-space-item {
|
|
34
30
|
&-rtl {
|
|
35
31
|
direction: rtl;
|
|
36
32
|
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { View } from "@tarojs/components";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import "./index.scss";
|
|
5
|
+
const AmountInput = props => {
|
|
6
|
+
const { value, maxlength = value.length, onFocus, className, focus = false, shortcut = "借全部", step = 100, errTip = "", onUpgrade, minAmount, maxAmount, loanOnekey = () => { }, placeholder = `单笔${minAmount}-${maxAmount}元,${step}的整数倍`, } = props;
|
|
7
|
+
function renderInputs() {
|
|
8
|
+
const Inputs = [""];
|
|
9
|
+
if (value === "")
|
|
10
|
+
return (React.createElement(View, { className: "xh-amount-input-top-amount-num-placeholder" }, placeholder));
|
|
11
|
+
for (let i = 0; i < maxlength; i++) {
|
|
12
|
+
const char = value[i];
|
|
13
|
+
Inputs.push(React.createElement(View, { key: i, className: "xh-amount-input-top-amount-num-key" }, char));
|
|
14
|
+
}
|
|
15
|
+
return Inputs;
|
|
16
|
+
}
|
|
17
|
+
function handlerClick(e) {
|
|
18
|
+
e.stopPropagation();
|
|
19
|
+
onFocus && onFocus(e);
|
|
20
|
+
}
|
|
21
|
+
const cls = classNames("xh-amount-input", className);
|
|
22
|
+
const handleUpgrade = (e) => {
|
|
23
|
+
e.stopPropagation();
|
|
24
|
+
onUpgrade === null || onUpgrade === void 0 ? void 0 : onUpgrade();
|
|
25
|
+
};
|
|
26
|
+
return (React.createElement(View, { className: cls },
|
|
27
|
+
React.createElement(View, { className: "xh-amount-input-top" },
|
|
28
|
+
React.createElement(View, { className: "xh-amount-input-top-unit" }, "\u00A5"),
|
|
29
|
+
React.createElement(View, { className: "xh-amount-input-top-amount", onClick: handlerClick },
|
|
30
|
+
React.createElement(View, { className: "xh-amount-input-top-amount-num" },
|
|
31
|
+
React.createElement(View, { className: "xh-amount-input-top-amount-num-key" }, "\u00A0"),
|
|
32
|
+
renderInputs(),
|
|
33
|
+
React.createElement(View, { className: classNames("xh-amount-input-top-amount-num-cursor", {
|
|
34
|
+
focus,
|
|
35
|
+
}) })),
|
|
36
|
+
React.createElement(View, { className: "xh-amount-input-top-amount-shortcut", onClick: loanOnekey }, shortcut))),
|
|
37
|
+
React.createElement(View, { className: "xh-amount-input-error" }, errTip && errTip),
|
|
38
|
+
React.createElement(View, { className: "xh-amount-input-bottom" },
|
|
39
|
+
React.createElement(View, { className: "xh-amount-input-bottom-range" },
|
|
40
|
+
"\u5355\u7B14\u53EF\u501F\uFF1A",
|
|
41
|
+
React.createElement(View, { className: "xh-amount-input-bottom-range-number" },
|
|
42
|
+
minAmount,
|
|
43
|
+
"-",
|
|
44
|
+
maxAmount,
|
|
45
|
+
"\u5143")),
|
|
46
|
+
React.createElement(View, { className: "xh-amount-input-bottom-tip" },
|
|
47
|
+
"\u989D\u5EA6\u4E0D\u6EE1\u610F\uFF1F",
|
|
48
|
+
React.createElement(View, { className: "xh-amount-input-bottom-tip-update", onClick: handleUpgrade }, "\u7ACB\u5373\u63D0\u989D")))));
|
|
49
|
+
};
|
|
50
|
+
export default AmountInput;
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/AmountInput/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import React, { useState, useEffect, useCallback, } from "react";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { CSSTransition } from "react-transition-group";
|
|
4
|
+
import { View } from "@tarojs/components";
|
|
5
|
+
import { pxTransform } from "@/utils";
|
|
6
|
+
import Badge from "../Badge";
|
|
7
|
+
import "./index.scss";
|
|
8
|
+
import Space from "../Space";
|
|
9
|
+
const XHAmountKeys = [
|
|
10
|
+
{ text: 1, value: 1, type: "number" },
|
|
11
|
+
{ text: 2, value: 2, type: "number" },
|
|
12
|
+
{ text: 3, value: 3, type: "number" },
|
|
13
|
+
{ text: "", value: "", type: "delete" },
|
|
14
|
+
{ text: 4, value: 4, type: "number" },
|
|
15
|
+
{ text: 5, value: 5, type: "number" },
|
|
16
|
+
{ text: 6, value: 6, type: "number" },
|
|
17
|
+
{ text: "", value: "", type: "none" },
|
|
18
|
+
{ text: 7, value: 7, type: "number" },
|
|
19
|
+
{ text: 8, value: 8, type: "number" },
|
|
20
|
+
{ text: 9, value: 9, type: "number" },
|
|
21
|
+
{ text: "", value: "", type: "none" },
|
|
22
|
+
{ text: "00", value: "00", type: "number" },
|
|
23
|
+
{ text: 0, value: 0, type: "number" },
|
|
24
|
+
{ text: "", value: "", type: "close" },
|
|
25
|
+
{ text: "", value: "", type: "none" },
|
|
26
|
+
];
|
|
27
|
+
const AmountKeyboard = props => {
|
|
28
|
+
const { onBlur, show, maxLength = Number.MAX_SAFE_INTEGER, closeOnClickSpace = true, onClose, onChange, value, className, onConfirm, recommend = [], header, } = props;
|
|
29
|
+
const [input, setInput] = useState(value);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (closeOnClickSpace) {
|
|
32
|
+
document.addEventListener("click", handleClose);
|
|
33
|
+
}
|
|
34
|
+
return () => {
|
|
35
|
+
document.removeEventListener("click", handleClose);
|
|
36
|
+
};
|
|
37
|
+
}, []);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
setInput(value);
|
|
40
|
+
}, [value]);
|
|
41
|
+
function handleClose(e) {
|
|
42
|
+
onClose && onClose(e);
|
|
43
|
+
onBlur && onBlur(e);
|
|
44
|
+
}
|
|
45
|
+
const handleOnRecommand = (e, amount) => {
|
|
46
|
+
e.stopPropagation();
|
|
47
|
+
onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(`${amount}`);
|
|
48
|
+
};
|
|
49
|
+
const handleKeyPress = useCallback((e, { type, value }) => {
|
|
50
|
+
if (process.env.TARO_ENV === "h5") {
|
|
51
|
+
e.stopImmediatePropagation();
|
|
52
|
+
}
|
|
53
|
+
if (type === "none")
|
|
54
|
+
return;
|
|
55
|
+
if (type === "close") {
|
|
56
|
+
handleClose(e);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
let newInput = input;
|
|
60
|
+
if (type === "delete") {
|
|
61
|
+
newInput = input.slice(0, input.length - 1);
|
|
62
|
+
}
|
|
63
|
+
else if (newInput.replace(/^0+/g, "").length < maxLength) {
|
|
64
|
+
newInput = input + value;
|
|
65
|
+
}
|
|
66
|
+
// 前后两个值相等就不触发onchange
|
|
67
|
+
if (newInput === input)
|
|
68
|
+
return;
|
|
69
|
+
setInput(newInput);
|
|
70
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(newInput);
|
|
71
|
+
}, [input]);
|
|
72
|
+
const handleConfirm = (e) => {
|
|
73
|
+
e.stopPropagation();
|
|
74
|
+
onConfirm === null || onConfirm === void 0 ? void 0 : onConfirm(input);
|
|
75
|
+
};
|
|
76
|
+
const keyboardcls = classNames("xh-amount-keyboard", className);
|
|
77
|
+
return (React.createElement(CSSTransition, { classNames: "slide-up", in: show, unmountOnExit: true, timeout: 200 },
|
|
78
|
+
React.createElement(View, { className: keyboardcls },
|
|
79
|
+
React.createElement(View, { className: "xh-amount-keyboard-header" },
|
|
80
|
+
React.createElement(View, { className: "xh-amount-keyboard-header-wrapper" }, header ||
|
|
81
|
+
(recommend.length > 0 && (React.createElement(View, { className: "xh-amount-keyboard-header-wrapper-text" },
|
|
82
|
+
"\u731C\u60A8\u60F3\u501F",
|
|
83
|
+
" ",
|
|
84
|
+
React.createElement(Space, { style: { marginLeft: pxTransform(24) } }, recommend === null || recommend === void 0 ? void 0 : recommend.map((amount, index) => (React.createElement(View, { key: index, onClick: e => handleOnRecommand(e, amount) },
|
|
85
|
+
React.createElement(Badge, { content: `¥${amount}`, key: index })))))))))),
|
|
86
|
+
React.createElement(View, { className: "xh-amount-keyboard-body" },
|
|
87
|
+
XHAmountKeys.map((key, index) => (React.createElement(View, { key: index, className: classNames("xh-amount-keyboard-body-key", {
|
|
88
|
+
none: key.type === "none",
|
|
89
|
+
delete: key.type === "delete",
|
|
90
|
+
close: key.type === "close",
|
|
91
|
+
}), onClick: e => {
|
|
92
|
+
handleKeyPress(e, key);
|
|
93
|
+
} }, key.text))),
|
|
94
|
+
React.createElement(View, { className: "xh-amount-keyboard-body-key confirm-fake", onClick: handleConfirm }, "\u786E\u5B9A")))));
|
|
95
|
+
};
|
|
96
|
+
export default AmountKeyboard;
|
|
97
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/AmountKeyboard/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { View } from "@tarojs/components";
|
|
4
|
+
import "./index.scss";
|
|
5
|
+
const Badge = props => {
|
|
6
|
+
const { content, children } = props;
|
|
7
|
+
const cls = classNames("xh-badge", classNames);
|
|
8
|
+
return React.createElement(View, { className: cls }, !!children ? children : content);
|
|
9
|
+
};
|
|
10
|
+
export default Badge;
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Badge/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,OAAO,cAAc,CAAC;AAMtB,MAAM,KAAK,GAAyB,KAAK,CAAC,EAAE;IAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAE/C,OAAO,oBAAC,IAAI,IAAC,SAAS,EAAE,GAAG,IAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAQ,CAAC;AACxE,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
const DotJump = props => {
|
|
3
|
+
const { style, space = 20 } = props;
|
|
4
|
+
return (React.createElement("div", { className: "xh-dot-loading", style: style },
|
|
5
|
+
React.createElement("svg", { height: "1em", viewBox: "0 0 100 40", style: { verticalAlign: "-0.125em" } },
|
|
6
|
+
React.createElement("g", { stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd" },
|
|
7
|
+
React.createElement("g", { transform: "translate(-100.000000, -71.000000)" },
|
|
8
|
+
React.createElement("g", { transform: "translate(95.000000, 71.000000)" },
|
|
9
|
+
React.createElement("g", { transform: "translate(5.000000, 0.000000)" }, [0, 1, 2].map(i => (React.createElement("rect", { key: i, fill: "currentColor", x: 20 + i * space, y: "16", width: "8", height: "8", rx: "2" },
|
|
10
|
+
React.createElement("animate", { attributeName: "y", from: "16", to: "16", dur: "2s", begin: `${i * 0.2}s`, repeatCount: "indefinite", values: "16; 6; 26; 16; 16", keyTimes: "0; 0.1; 0.3; 0.4; 1" })))))))))));
|
|
11
|
+
};
|
|
12
|
+
export default DotJump;
|
|
13
|
+
//# sourceMappingURL=DotJump.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DotJump.js","sourceRoot":"","sources":["../../../src/components/Button/DotJump.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,OAAO,GAA2B,KAAK,CAAC,EAAE;IAC9C,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IACpC,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,KAAK;QAC1C,6BACE,MAAM,EAAC,KAAK,EACZ,OAAO,EAAC,YAAY,EACpB,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE;YAEpC,2BAAG,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAC,SAAS;gBAC7D,2BAAG,SAAS,EAAC,oCAAoC;oBAC/C,2BAAG,SAAS,EAAC,iCAAiC;wBAC5C,2BAAG,SAAS,EAAC,+BAA+B,IACzC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAClB,8BACE,GAAG,EAAE,CAAC,EACN,IAAI,EAAC,cAAc,EACnB,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,KAAK,EACjB,CAAC,EAAC,IAAI,EACN,KAAK,EAAC,GAAG,EACT,MAAM,EAAC,GAAG,EACV,EAAE,EAAC,GAAG;4BAEN,iCACE,aAAa,EAAC,GAAG,EACjB,IAAI,EAAC,IAAI,EACT,EAAE,EAAC,IAAI,EACP,GAAG,EAAC,IAAI,EACR,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,EACpB,WAAW,EAAC,YAAY,EACxB,MAAM,EAAC,mBAAmB,EAC1B,QAAQ,EAAC,qBAAqB,GAC9B,CACG,CACR,CAAC,CACA,CACF,CACF,CACF,CACA,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -3,8 +3,9 @@ import classNames from "classnames";
|
|
|
3
3
|
import { Button } from "@tarojs/components";
|
|
4
4
|
import { useTaroEnv } from "../../hooks";
|
|
5
5
|
import "./index.scss";
|
|
6
|
+
import DotJump from "./DotJump";
|
|
6
7
|
const XhButton = props => {
|
|
7
|
-
const { disabled = false, type = "default", size = "normal", shape = "round", children, className, htmlType, formType, text, openType, lang, sessionFrom, sendMessageTitle, sendMessagePath, sendMessageImg, showMessageCard, appParameter, onGetUserInfo, onGetPhoneNumber, onOpenSetting, onError, onContact, onClick, preventTime = 2500, style, } = props;
|
|
8
|
+
const { disabled = false, type = "default", size = "normal", shape = "round", children, className, htmlType, formType, text, openType, lang, sessionFrom, sendMessageTitle, sendMessagePath, sendMessageImg, showMessageCard, appParameter, onGetUserInfo, onGetPhoneNumber, onOpenSetting, onError, onContact, onClick, preventTime = 2500, style, loading, loadingStyle, loadingSpace, } = props;
|
|
8
9
|
const state = useTaroEnv();
|
|
9
10
|
const [preventClick, setPreventClick] = useState(false);
|
|
10
11
|
const timer = useRef();
|
|
@@ -46,13 +47,15 @@ const XhButton = props => {
|
|
|
46
47
|
clearTimeout(timer.current);
|
|
47
48
|
};
|
|
48
49
|
}, []);
|
|
49
|
-
const weButton = (React.createElement(Button, { className: classObj, formType: formType, openType: openType, lang: lang, type: type, sessionFrom: sessionFrom, sendMessageTitle: sendMessageTitle, sendMessagePath: sendMessagePath, sendMessageImg: sendMessageImg, showMessageCard: showMessageCard, appParameter: appParameter, onGetUserInfo: onGetUserInfo, onGetPhoneNumber: onGetPhoneNumber, onOpenSetting: onOpenSetting, onError: onError, onContact: onContact, onClick: handleClick, disabled: disabled, style: style }, children));
|
|
50
|
+
const weButton = (React.createElement(Button, { className: classObj, formType: formType, openType: openType, lang: lang, type: type, sessionFrom: sessionFrom, sendMessageTitle: sendMessageTitle, sendMessagePath: sendMessagePath, sendMessageImg: sendMessageImg, showMessageCard: showMessageCard, appParameter: appParameter, onGetUserInfo: onGetUserInfo, onGetPhoneNumber: onGetPhoneNumber, onOpenSetting: onOpenSetting, onError: onError, onContact: onContact, onClick: handleClick, disabled: disabled, style: style, loading: loading }, children));
|
|
50
51
|
if (state === "WEAPP") {
|
|
51
52
|
return weButton;
|
|
52
53
|
}
|
|
53
54
|
return (
|
|
54
55
|
// eslint-disable-next-line react/button-has-type
|
|
55
|
-
React.createElement("button", { className: classObj, disabled: disabled, type: htmlType, onClick: disabled ? undefined : handleClick, style: style },
|
|
56
|
+
React.createElement("button", { className: classObj, disabled: disabled, type: htmlType, onClick: disabled ? undefined : handleClick, style: style },
|
|
57
|
+
children || text,
|
|
58
|
+
loading && React.createElement(DotJump, { style: loadingStyle, space: loadingSpace })));
|
|
56
59
|
};
|
|
57
60
|
export default XhButton;
|
|
58
61
|
//# sourceMappingURL=index.js.map
|