oxy-uni-ui 1.2.3 → 2.1.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.
Files changed (246) hide show
  1. package/attributes.json +1 -1
  2. package/components/common/abstracts/variable.scss +512 -343
  3. package/components/common/util.ts +185 -32
  4. package/components/composables/index.ts +1 -0
  5. package/components/composables/usePopover.ts +24 -20
  6. package/components/composables/useVirtualScroll.ts +48 -21
  7. package/components/composables/useWindowResize.ts +35 -0
  8. package/components/oxy-action-sheet/index.scss +24 -11
  9. package/components/oxy-action-sheet/oxy-action-sheet.vue +27 -19
  10. package/components/oxy-action-sheet/types.ts +7 -0
  11. package/components/oxy-backtop/index.scss +4 -4
  12. package/components/oxy-backtop/oxy-backtop.vue +9 -6
  13. package/components/oxy-backtop/types.ts +7 -7
  14. package/components/oxy-badge/index.scss +4 -4
  15. package/components/oxy-badge/oxy-badge.vue +3 -3
  16. package/components/oxy-badge/types.ts +2 -2
  17. package/components/oxy-button/index.scss +5 -5
  18. package/components/oxy-button/oxy-button.vue +5 -1
  19. package/components/oxy-calendar/index.scss +15 -15
  20. package/components/oxy-calendar/oxy-calendar.vue +1 -0
  21. package/components/oxy-calendar/types.ts +5 -0
  22. package/components/oxy-calendar-view/month/index.scss +4 -4
  23. package/components/oxy-calendar-view/month/types.ts +36 -0
  24. package/components/oxy-calendar-view/monthPanel/index.scss +7 -8
  25. package/components/oxy-calendar-view/monthPanel/month-panel.vue +14 -8
  26. package/components/oxy-calendar-view/year/index.scss +5 -5
  27. package/components/oxy-calendar-view/yearPanel/index.scss +4 -4
  28. package/components/oxy-calendar-view/yearPanel/year-panel.vue +21 -5
  29. package/components/oxy-card/index.scss +2 -2
  30. package/components/oxy-cell/index.scss +8 -8
  31. package/components/oxy-checkbox/index.scss +12 -12
  32. package/components/oxy-checkbox-group/index.scss +2 -2
  33. package/components/oxy-circle/oxy-circle.vue +10 -7
  34. package/components/oxy-circle/types.ts +5 -5
  35. package/components/oxy-col/oxy-col.vue +2 -2
  36. package/components/oxy-col-picker/index.scss +4 -4
  37. package/components/oxy-col-picker/oxy-col-picker.vue +6 -5
  38. package/components/oxy-col-picker/types.ts +7 -2
  39. package/components/oxy-collapse/index.scss +2 -2
  40. package/components/oxy-collapse-item/oxy-collapse-item.vue +3 -3
  41. package/components/oxy-corner/index.scss +33 -33
  42. package/components/oxy-count-to/oxy-count-to.vue +3 -3
  43. package/components/oxy-curtain/index.scss +15 -15
  44. package/components/oxy-curtain/oxy-curtain.vue +4 -2
  45. package/components/oxy-curtain/types.ts +6 -1
  46. package/components/oxy-date-strip/oxy-date-strip.vue +2 -2
  47. package/components/oxy-date-strip/types.ts +1 -1
  48. package/components/oxy-date-strip-item/index.scss +3 -3
  49. package/components/oxy-datetime-picker/index.scss +11 -11
  50. package/components/oxy-datetime-picker/oxy-datetime-picker.vue +1 -0
  51. package/components/oxy-datetime-picker/types.ts +5 -0
  52. package/components/oxy-drop-menu/index.scss +5 -5
  53. package/components/oxy-drop-menu/oxy-drop-menu.vue +3 -3
  54. package/components/oxy-drop-menu-item/index.scss +3 -3
  55. package/components/oxy-drop-menu-item/oxy-drop-menu-item.vue +4 -3
  56. package/components/oxy-drop-menu-item/types.ts +5 -0
  57. package/components/oxy-echarts/types.ts +6 -0
  58. package/components/oxy-fab/index.scss +8 -8
  59. package/components/oxy-fab/oxy-fab.vue +22 -3
  60. package/components/oxy-file-list/index.scss +30 -29
  61. package/components/oxy-file-list/oxy-file-list.vue +2 -2
  62. package/components/oxy-floating-panel/oxy-floating-panel.vue +13 -9
  63. package/components/oxy-floating-panel/{type.ts → types.ts} +8 -8
  64. package/components/oxy-footer/index.scss +19 -0
  65. package/components/oxy-footer/oxy-footer.vue +78 -0
  66. package/components/oxy-footer/types.ts +17 -0
  67. package/components/oxy-form-item/types.ts +22 -1
  68. package/components/oxy-gap/oxy-gap.vue +2 -2
  69. package/components/oxy-gap/types.ts +2 -2
  70. package/components/oxy-grid/oxy-grid.vue +1 -1
  71. package/components/oxy-grid/types.ts +1 -1
  72. package/components/oxy-grid-item/index.scss +1 -1
  73. package/components/oxy-grid-item/oxy-grid-item.vue +7 -5
  74. package/components/oxy-grid-item/types.ts +1 -1
  75. package/components/oxy-guidance/index.scss +75 -0
  76. package/components/oxy-guidance/oxy-guidance.vue +201 -0
  77. package/components/oxy-guidance/types.ts +33 -0
  78. package/components/oxy-icon/oxy-icon.vue +2 -2
  79. package/components/oxy-icon/types.ts +1 -1
  80. package/components/oxy-img/oxy-img.vue +4 -4
  81. package/components/oxy-img/types.ts +3 -3
  82. package/components/oxy-img-cropper/index.scss +23 -23
  83. package/components/oxy-img-cropper/oxy-img-cropper.vue +97 -52
  84. package/components/oxy-img-cropper/types.ts +2 -2
  85. package/components/oxy-img-lazy/oxy-img-lazy.vue +3 -3
  86. package/components/oxy-img-lazy/types.ts +3 -3
  87. package/components/oxy-index-anchor/index.scss +2 -2
  88. package/components/oxy-index-anchor/oxy-index-anchor.vue +2 -2
  89. package/components/oxy-index-anchor/{type.ts → types.ts} +3 -0
  90. package/components/oxy-index-bar/index.scss +3 -3
  91. package/components/oxy-index-bar/oxy-index-bar.vue +3 -3
  92. package/components/oxy-index-bar/{type.ts → types.ts} +2 -2
  93. package/components/oxy-input/index.scss +1 -1
  94. package/components/oxy-input-number/index.scss +5 -5
  95. package/components/oxy-input-number/oxy-input-number.vue +2 -2
  96. package/components/oxy-input-number/types.ts +3 -2
  97. package/components/oxy-keyboard/index.scss +5 -5
  98. package/components/oxy-keyboard/key/index.scss +3 -3
  99. package/components/oxy-keyboard/key/index.vue +2 -2
  100. package/components/oxy-keyboard/key/types.ts +15 -0
  101. package/components/oxy-keyboard/oxy-keyboard.vue +1 -0
  102. package/components/oxy-keyboard/types.ts +5 -0
  103. package/components/oxy-link/index.scss +2 -2
  104. package/components/oxy-list/oxy-list.vue +4 -3
  105. package/components/oxy-loading/oxy-loading.vue +8 -4
  106. package/components/oxy-loading/types.ts +1 -1
  107. package/components/oxy-loadmore/index.scss +3 -3
  108. package/components/oxy-long-press-menu/index.scss +93 -0
  109. package/components/oxy-long-press-menu/oxy-long-press-menu.vue +338 -0
  110. package/components/oxy-long-press-menu/types.ts +34 -0
  111. package/components/oxy-message-box/index.scss +12 -11
  112. package/components/oxy-message-box/oxy-message-box.vue +9 -2
  113. package/components/oxy-message-box/types.ts +9 -0
  114. package/components/oxy-navbar/index.scss +2 -2
  115. package/components/oxy-navbar/oxy-navbar.vue +58 -13
  116. package/components/oxy-navbar/types.ts +8 -1
  117. package/components/oxy-navbar-capsule/types.ts +3 -0
  118. package/components/oxy-notice-bar/index.scss +3 -3
  119. package/components/oxy-notice-bar/oxy-notice-bar.vue +9 -5
  120. package/components/oxy-notice-bar/types.ts +3 -3
  121. package/components/oxy-notify/index.ts +1 -0
  122. package/components/oxy-notify/oxy-notify.vue +3 -2
  123. package/components/oxy-notify/types.ts +7 -0
  124. package/components/oxy-pagination/index.scss +6 -5
  125. package/components/oxy-password-input/oxy-password-input.vue +2 -2
  126. package/components/oxy-password-input/types.ts +1 -1
  127. package/components/oxy-picker/index.scss +45 -2
  128. package/components/oxy-picker/oxy-picker.vue +100 -14
  129. package/components/oxy-picker/types.ts +29 -1
  130. package/components/oxy-picker-view/index.scss +4 -4
  131. package/components/oxy-picker-view/oxy-picker-view.vue +4 -4
  132. package/components/oxy-popover/index.scss +13 -13
  133. package/components/oxy-popup/index.scss +4 -4
  134. package/components/oxy-popup/oxy-popup.vue +35 -2
  135. package/components/oxy-popup/types.ts +8 -1
  136. package/components/oxy-progress/index.scss +3 -3
  137. package/components/oxy-qrcode/draw.ts +398 -0
  138. package/components/oxy-qrcode/index.scss +2 -0
  139. package/components/oxy-qrcode/oxy-qrcode.vue +124 -0
  140. package/components/oxy-qrcode/qrcode.ts +936 -0
  141. package/components/oxy-qrcode/types.ts +42 -0
  142. package/components/oxy-radio/index.scss +25 -19
  143. package/components/oxy-radio-group/index.scss +2 -2
  144. package/components/oxy-rate/types.ts +4 -4
  145. package/components/oxy-resize/index.scss +2 -2
  146. package/components/oxy-resize/oxy-resize.vue +4 -4
  147. package/components/oxy-resize/types.ts +3 -0
  148. package/components/oxy-rich-text/index.scss +37 -36
  149. package/components/oxy-rich-text/mp-html/card/card.vue +3 -3
  150. package/components/oxy-rich-text/mp-html/mp-html.vue +33 -24
  151. package/components/oxy-rich-text/mp-html/node/node.vue +30 -19
  152. package/components/oxy-rich-text/oxy-rich-text.vue +31 -31
  153. package/components/oxy-rich-text/types.ts +6 -1
  154. package/components/oxy-row/oxy-row.vue +3 -3
  155. package/components/oxy-row/types.ts +1 -1
  156. package/components/oxy-search/index.scss +7 -7
  157. package/components/oxy-segmented/index.scss +19 -16
  158. package/components/oxy-segmented/oxy-segmented.vue +23 -3
  159. package/components/oxy-select/index.scss +213 -89
  160. package/components/oxy-select/oxy-select.vue +106 -58
  161. package/components/oxy-select/types.ts +13 -1
  162. package/components/oxy-select-picker/index.scss +7 -7
  163. package/components/oxy-select-picker/oxy-select-picker.vue +1 -0
  164. package/components/oxy-select-picker/types.ts +2 -0
  165. package/components/oxy-sidebar-item/index.scss +2 -2
  166. package/components/oxy-signature/oxy-signature.vue +18 -10
  167. package/components/oxy-signature/types.ts +106 -13
  168. package/components/oxy-skeleton/index.scss +1 -1
  169. package/components/oxy-skeleton/oxy-skeleton.vue +6 -6
  170. package/components/oxy-skeleton/types.ts +1 -1
  171. package/components/oxy-slider/index.scss +6 -6
  172. package/components/oxy-sort-button/index.scss +8 -8
  173. package/components/oxy-splitter/index.scss +19 -0
  174. package/components/oxy-splitter/oxy-splitter.vue +409 -0
  175. package/components/oxy-splitter/types.ts +75 -0
  176. package/components/oxy-splitter-panel/index.scss +366 -0
  177. package/components/oxy-splitter-panel/oxy-splitter-panel.vue +432 -0
  178. package/components/oxy-splitter-panel/types.ts +63 -0
  179. package/components/oxy-status-tip/index.scss +4 -4
  180. package/components/oxy-status-tip/oxy-status-tip.vue +5 -5
  181. package/components/oxy-status-tip/types.ts +3 -3
  182. package/components/oxy-step/index.scss +16 -16
  183. package/components/oxy-sticky/oxy-sticky.vue +6 -6
  184. package/components/oxy-stream-render/oxy-stream-render.vue +230 -4
  185. package/components/oxy-stream-render/types.ts +4 -1
  186. package/components/oxy-swipe-action/oxy-swipe-action.vue +27 -2
  187. package/components/oxy-swiper/oxy-swiper.vue +6 -6
  188. package/components/oxy-swiper/types.ts +5 -5
  189. package/components/oxy-swiper-nav/index.scss +3 -3
  190. package/components/oxy-switch/index.scss +10 -10
  191. package/components/oxy-switch/oxy-switch.vue +2 -2
  192. package/components/oxy-switch/types.ts +1 -1
  193. package/components/oxy-tab/index.scss +11 -1
  194. package/components/oxy-tabbar/index.scss +2 -2
  195. package/components/oxy-tabbar/oxy-tabbar.vue +39 -10
  196. package/components/oxy-table/index.scss +8 -8
  197. package/components/oxy-table/oxy-table.vue +8 -6
  198. package/components/oxy-table/types.ts +2 -2
  199. package/components/oxy-table-col/index.scss +3 -3
  200. package/components/oxy-table-col/oxy-table-col.vue +3 -3
  201. package/components/oxy-table-col/types.ts +2 -2
  202. package/components/oxy-tabs/index.scss +52 -22
  203. package/components/oxy-tabs/oxy-tabs.vue +53 -19
  204. package/components/oxy-tabs/types.ts +15 -3
  205. package/components/oxy-tag/index.scss +111 -36
  206. package/components/oxy-text/index.scss +5 -1
  207. package/components/oxy-text/oxy-text.vue +76 -7
  208. package/components/oxy-text/types.ts +12 -0
  209. package/components/oxy-textarea/index.scss +6 -6
  210. package/components/oxy-toast/oxy-toast.vue +24 -8
  211. package/components/oxy-tooltip/index.scss +9 -9
  212. package/components/oxy-tree/index.scss +51 -15
  213. package/components/oxy-tree/oxy-tree.vue +13 -9
  214. package/components/oxy-tree/types.ts +12 -9
  215. package/components/oxy-upload/index.scss +23 -23
  216. package/components/oxy-upload/types.ts +2 -2
  217. package/components/oxy-verification-code/index.scss +6 -0
  218. package/components/oxy-verification-code/oxy-verification-code.vue +187 -0
  219. package/components/oxy-verification-code/types.ts +82 -0
  220. package/components/oxy-video-preview/index.scss +4 -4
  221. package/components/oxy-virtual-scroll/index.scss +5 -5
  222. package/components/oxy-virtual-scroll/oxy-virtual-scroll.vue +11 -7
  223. package/components/oxy-virtual-scroll/types.ts +14 -14
  224. package/components/oxy-voice-player/index.scss +937 -0
  225. package/components/oxy-voice-player/oxy-voice-player.vue +821 -0
  226. package/components/oxy-voice-player/types.ts +567 -0
  227. package/components/oxy-waterfall/oxy-waterfall.vue +6 -6
  228. package/components/oxy-waterfall/types.ts +6 -6
  229. package/components/oxy-watermark/oxy-watermark.vue +35 -13
  230. package/components/oxy-watermark/types.ts +14 -14
  231. package/global.d.ts +4 -0
  232. package/locale/lang/ar-SA.ts +3 -0
  233. package/locale/lang/en-US.ts +3 -0
  234. package/locale/lang/zh-CN.ts +3 -0
  235. package/package.json +97 -1
  236. package/tags.json +1 -1
  237. package/web-types.json +1 -1
  238. package/components/oxy-number-keyboard/index.scss +0 -78
  239. package/components/oxy-number-keyboard/key/index.scss +0 -81
  240. package/components/oxy-number-keyboard/key/index.vue +0 -78
  241. package/components/oxy-number-keyboard/key/types.ts +0 -11
  242. package/components/oxy-number-keyboard/oxy-number-keyboard.vue +0 -151
  243. package/components/oxy-number-keyboard/types.ts +0 -83
  244. package/components/oxy-tree/components/tree-node-content.vue +0 -72
  245. package/components/oxy-tree/index.ts +0 -51
  246. package/oxy-uni-ui.zip +0 -0
@@ -8,18 +8,22 @@
8
8
  flex: 1;
9
9
  box-sizing: border-box;
10
10
  position: relative;
11
+ text-align: left;
11
12
  .oxy-select__label {
12
13
  margin: auto 0;
13
- margin-right: $-input-cell-padding;
14
+ color: $-select-label-color;
15
+ margin-right: $-select-label-gap;
16
+ box-sizing: border-box;
17
+ font-size: $-select-fs;
14
18
  }
15
19
  .oxy-select__icon {
16
20
  position: absolute;
17
21
  right: 0;
18
- font-size: $-input-icon-size;
19
- color: $-input-icon-color;
22
+ font-size: $-select-icon-size;
23
+ color: $-select-icon-color;
20
24
  }
21
25
  .oxy-select__icon-clear {
22
- color: $-input-clear-color;
26
+ color: $-select-clear-icon-color;
23
27
  }
24
28
  .oxy-select__icon-arrow {
25
29
  transition: transform .2s;
@@ -32,32 +36,47 @@
32
36
  flex: 1;
33
37
  }
34
38
  .oxy-select__wrapper {
35
- font-size: $-input-fs;
36
- border: 1px solid $-input-border-color;
39
+ font-size: $-select-fs;
40
+ color: $-select-text-color;
41
+ border: 1px solid $-color-border;
37
42
  box-sizing: border-box;
38
- border-radius: 4px;
39
- padding: 0 5px;
40
- padding-left: $-input-cell-padding;
43
+ border-radius: $-select-wrapper-radius;
44
+ padding: 0 $-select-wrapper-padding-x;
41
45
  position: relative;
42
46
  /* #ifndef APP-NVUE */
43
47
  display: flex;
44
48
  user-select: none;
45
49
  /* #endif */
46
50
  flex-direction: row;
47
- align-items: center;
48
- border-bottom: solid 1px $-input-border-color;
49
51
  width: 100%;
50
52
  flex: 1;
51
- min-height: $-input-inner-height;
53
+ min-height: $-select-wrapper-min-height;
54
+ transition: all 0.2s;
55
+
56
+ &:hover:not(.is-disabled):not(.is-readonly) {
57
+ border-color: $-color-theme;
58
+ }
59
+
60
+ &.is-focus:not(.is-disabled):not(.is-readonly) {
61
+ border-color: $-color-theme;
62
+ box-shadow: $-select-focus-shadow;
63
+ }
52
64
 
53
65
  &.is-disabled {
54
- background-color: $-input-disabled-color;
66
+ background-color: $-color-bg;
67
+ border-color: $-color-border-light;
55
68
  cursor: not-allowed;
69
+ color: $-color-tip;
70
+ }
71
+
72
+ &.is-readonly {
73
+ background-color: transparent;
74
+ border-color: transparent;
75
+ padding: 0;
56
76
  }
57
77
  }
58
78
  .oxy-select__input-box {
59
79
  width: 100%;
60
- // height: $-input-inner-height;
61
80
  position: relative;
62
81
  /* #ifndef APP-NVUE */
63
82
  display: flex;
@@ -65,71 +84,99 @@
65
84
  flex: 1;
66
85
  flex-direction: row;
67
86
  align-items: center;
87
+ overflow: hidden;
68
88
  }
69
89
 
70
90
  .oxy-select__tags {
71
91
  width: 100%;
72
92
  display: flex;
73
93
  flex-wrap: wrap;
74
- &-item {
75
- font-size: 12px;
76
- border: 1px solid #d9ecff;
77
- border-radius: 4px;
78
- white-space: nowrap;
79
- height: 24px;
80
- padding: 0 4px;
81
- line-height: 22px;
82
- box-sizing: border-box;
83
- margin: 2px 2px;
84
- display: flex;
85
- max-width: 100%;
86
- align-items: center;
87
- background-color: #f4f4f5;
88
- border-color: #e9e9eb;
89
- color: #909399;
90
- &:first-child {
91
- margin-left: 0;
92
- }
93
- &-text {
94
- font-size: 12px;
95
- white-space: nowrap;
96
- line-height: 22px;
97
- color: #909399;
98
- overflow: hidden;
99
- text-overflow: ellipsis;
100
- }
101
- }
102
- .oxy-select__icon-error{
103
- margin-left: 4px;
94
+ min-width: 0;
95
+ padding: 12rpx 0;
96
+ }
97
+
98
+ .oxy-select__tags-item {
99
+ display: inline-flex;
100
+ min-width: 0;
101
+ max-width: 100%;
102
+ margin: 8rpx 8rpx 8rpx 0;
103
+ }
104
+
105
+ :deep(.oxy-select__tags-item-tag.oxy-tag.is-round) {
106
+ display: inline-flex;
107
+ align-items: center;
108
+ box-sizing: border-box;
109
+ min-height: 56rpx;
110
+ max-width: 100%;
111
+ height: 56rpx;
112
+ padding: 0 20rpx;
113
+ background-color: $-color-bg;
114
+ border-color: $-color-border-light;
115
+ border-radius: $-select-tag-radius;
116
+ color: $-color-secondary;
117
+ font-size: $-select-tag-font-size;
118
+ line-height: 52rpx;
119
+ transition: all 0.2s;
120
+
121
+ &:hover {
122
+ border-color: $-color-theme;
123
+ color: $-color-theme;
104
124
  }
105
125
  }
106
126
 
127
+ :deep(.oxy-select__tags-item-tag .oxy-tag__text) {
128
+ display: inline-block;
129
+ min-width: 0;
130
+ max-width: 100%;
131
+ white-space: nowrap;
132
+ overflow: hidden;
133
+ text-overflow: ellipsis;
134
+ line-height: 1.2;
135
+ vertical-align: middle;
136
+ }
137
+
138
+ :deep(.oxy-select__tags-item-tag .oxy-tag__close) {
139
+ margin-left: 12rpx;
140
+ margin-right: 0;
141
+ height: auto;
142
+ line-height: 1;
143
+ color: $-color-aid;
144
+ }
145
+
146
+ :deep(.oxy-select__tags-item-tag .oxy-tag__close:active) {
147
+ color: $-color-danger;
148
+ }
149
+
150
+ .oxy-select__tags-item-text {
151
+ font-size: $-select-tag-font-size;
152
+ }
153
+
107
154
  .oxy-select__input {
108
155
  flex: 1;
109
- font-size: 14px;
110
- height: 22px;
111
- line-height: 22px;
156
+ font-size: $-fs-content;
157
+ height: 52rpx;
158
+ line-height: 52rpx;
112
159
  }
113
160
 
114
161
  .oxy-select__input-plac {
115
- color: $-input-placeholder-color;
162
+ color: $-color-tip;
116
163
  }
117
164
 
118
165
  .oxy-select__selector__down {
119
- top: calc(100% + 12px);
166
+ top: calc(100% + 24rpx);
120
167
 
121
168
  .oxy-select__selector-arrow {
122
169
  transform: rotateX(0deg);
123
- top: -6px;
170
+ top: -12rpx;
124
171
  }
125
172
  }
126
173
 
127
174
  .oxy-select__selector__upwards {
128
- bottom: calc(100% + 12px);
175
+ bottom: calc(100% + 24rpx);
129
176
 
130
177
  .oxy-select__selector-arrow {
131
178
  transform: rotateX(180deg);
132
- bottom: -6px;
179
+ bottom: -12rpx;
133
180
  }
134
181
  }
135
182
 
@@ -140,17 +187,50 @@
140
187
  position: absolute;
141
188
  left: 0;
142
189
  width: 100%;
143
- background-color: #FFFFFF;
144
- border: 1px solid #EBEEF5;
145
- border-radius: 6px;
146
- box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
147
- z-index: 3;
148
- padding: 4px 0;
190
+ background-color: $-color-white;
191
+ border: 1px solid $-color-border-light;
192
+ border-radius: $-select-dropdown-radius;
193
+ box-shadow: $-select-dropdown-shadow;
194
+ z-index: 100;
195
+ padding: 16rpx 0;
196
+ overflow: hidden;
197
+ }
198
+
199
+ .oxy-select__dropdown-transition {
200
+ .oxy-select__selector {
201
+ opacity: 1;
202
+ transform: translateY(0) scale(1);
203
+ will-change: transform, opacity;
204
+ transition-property: opacity, transform;
205
+ transition-duration: 0.2s;
206
+ transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
207
+ }
208
+
209
+ .oxy-select__selector__down {
210
+ transform-origin: center top;
211
+ }
212
+
213
+ .oxy-select__selector__upwards {
214
+ transform-origin: center bottom;
215
+ }
216
+
217
+ &.oxy-fade-enter,
218
+ &.oxy-fade-leave-to {
219
+ .oxy-select__selector.oxy-select__selector__down {
220
+ opacity: 0;
221
+ transform: translateY(-12rpx) scale(0.98);
222
+ }
223
+
224
+ .oxy-select__selector.oxy-select__selector__upwards {
225
+ opacity: 0;
226
+ transform: translateY(12rpx) scale(0.98);
227
+ }
228
+ }
149
229
  }
150
230
 
151
231
  .oxy-select__selector-scroll {
152
232
  /* #ifndef APP-NVUE */
153
- max-height: 200px;
233
+ max-height: 480rpx;
154
234
  box-sizing: border-box;
155
235
  /* #endif */
156
236
  }
@@ -159,36 +239,56 @@
159
239
  .oxy-select__selector-item {
160
240
  /* #ifndef APP-NVUE */
161
241
  display: flex;
162
- // cursor: pointer;
163
242
  /* #endif */
164
- line-height: $-input-inner-height;
165
- font-size: 14px;
166
- text-align: center;
167
- padding: 0px 10px;
243
+ min-height: 88rpx;
244
+ line-height: 1.4;
245
+ font-size: $-fs-content;
246
+ padding: 20rpx 32rpx;
247
+ box-sizing: border-box;
248
+ transition: background-color 0.2s;
168
249
  }
169
250
 
170
251
  .oxy-select__selector-item {
171
252
  display: flex;
172
253
  justify-content: space-between;
173
254
  align-items: center;
255
+ color: $-color-content;
256
+ cursor: pointer;
257
+
258
+ &:hover:not(.oxy-select__selector__disabled) {
259
+ background-color: $-color-bg;
260
+ }
261
+
262
+ &.oxy-select_selector-item_active {
263
+ color: $-color-theme;
264
+ background-color: $-select-active-bg;
265
+ font-weight: 500;
266
+ }
174
267
  }
175
268
 
176
- .oxy-select__selector-empty:last-child,
177
- .oxy-select__selector-item:last-child {
178
- /* #ifndef APP-NVUE */
179
- border-bottom: none;
180
- /* #endif */
269
+ .oxy-select__selector__disabled {
270
+ color: $-color-tip;
271
+ cursor: not-allowed;
272
+ background-color: transparent !important;
181
273
  }
182
274
 
183
- .oxy-select_selector-item_active {
184
- color: $-color-theme;
185
- font-weight: bold;
186
- border-radius: 3px;
275
+ .oxy-select__loading {
276
+ display: flex;
277
+ align-items: center;
278
+ justify-content: center;
279
+ padding: 40rpx 0;
280
+ color: $-color-aid;
281
+ font-size: $-fs-secondary;
282
+
283
+ &-icon {
284
+ margin-right: 16rpx;
285
+ animation: rotate 1s linear infinite;
286
+ }
187
287
  }
188
288
 
189
- .oxy-select__selector__disabled {
190
- opacity: 0.4;
191
- cursor: default;
289
+ @keyframes rotate {
290
+ from { transform: rotate(0deg); }
291
+ to { transform: rotate(360deg); }
192
292
  }
193
293
 
194
294
  /* picker 弹出层通用的指示小三角 */
@@ -200,48 +300,61 @@
200
300
  height: 0;
201
301
  border-color: transparent;
202
302
  border-style: solid;
203
- border-width: 6px;
303
+ border-width: 12rpx;
204
304
  }
205
305
 
206
306
  .oxy-select__selector-arrow {
207
- filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
307
+ filter: $-select-dropdown-filter-shadow;
208
308
 
209
309
  left: 10%;
210
- margin-right: 3px;
310
+ margin-right: 8rpx;
211
311
  border-top-width: 0;
212
- border-bottom-color: #EBEEF5;
312
+ border-bottom-color: $-color-border-light;
213
313
  }
214
314
 
215
315
  .oxy-select__selector-arrow::after {
216
316
  content: " ";
217
- top: 1px;
218
- margin-left: -6px;
317
+ top: 2rpx;
318
+ margin-left: -12rpx;
219
319
  border-top-width: 0;
220
- border-bottom-color: #fff;
320
+ border-bottom-color: $-color-white;
221
321
  }
222
322
 
223
323
  .oxy-select__input-text {
224
- // width: 280px;
225
- width: 90%;
226
- color: $-input-color;
324
+ width: 100%;
325
+ font-size: $-select-fs;
326
+ color: $-select-text-color;
327
+ outline: none;
328
+ border: none;
329
+ background: none;
227
330
  white-space: nowrap;
228
331
  text-overflow: ellipsis;
229
- -o-text-overflow: ellipsis;
230
332
  overflow: hidden;
231
333
  }
232
334
 
233
335
  .oxy-select__input-selector {
234
336
  position: absolute;
235
337
  z-index: 1;
338
+ left: 0;
339
+ right: 60rpx;
340
+ width: auto;
341
+ &::-webkit-input-placeholder {
342
+ color: $-select-placeholder-color;
343
+ }
236
344
  }
237
345
 
238
346
  .oxy-select__input-filter {
239
347
  width: auto;
240
- margin-left: 6px;
348
+ min-width: 80rpx;
349
+ margin-left: 8rpx;
350
+ flex: 1;
351
+ &::-webkit-input-placeholder {
352
+ color: $-select-placeholder-color;
353
+ }
241
354
  }
242
355
 
243
356
  .oxy-select__input-placeholder {
244
- color: $-input-placeholder-color;
357
+ color: $-select-placeholder-color;
245
358
  }
246
359
 
247
360
  .oxy-select--mask {
@@ -252,4 +365,15 @@
252
365
  left: 0;
253
366
  z-index: 2;
254
367
  }
368
+
369
+ @include when(no-border) {
370
+ .oxy-select__wrapper {
371
+ border: 0;
372
+ padding: 0;
373
+ min-height: $-select-no-border-min-height;
374
+ &.is-focus:not(.is-disabled):not(.is-readonly) {
375
+ box-shadow: none;
376
+ }
377
+ }
378
+ }
255
379
  }