luna-mobile-weapp 0.0.1

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 (290) hide show
  1. package/miniprogram_dist/action-sheet/index.js +59 -0
  2. package/miniprogram_dist/action-sheet/index.json +4 -0
  3. package/miniprogram_dist/action-sheet/index.wxml +18 -0
  4. package/miniprogram_dist/action-sheet/index.wxss +1 -0
  5. package/miniprogram_dist/address-edit/index.js +130 -0
  6. package/miniprogram_dist/address-edit/index.json +4 -0
  7. package/miniprogram_dist/address-edit/index.wxml +63 -0
  8. package/miniprogram_dist/address-edit/index.wxss +1 -0
  9. package/miniprogram_dist/address-list/index.js +57 -0
  10. package/miniprogram_dist/address-list/index.json +4 -0
  11. package/miniprogram_dist/address-list/index.wxml +37 -0
  12. package/miniprogram_dist/address-list/index.wxss +1 -0
  13. package/miniprogram_dist/aside/index.js +17 -0
  14. package/miniprogram_dist/aside/index.json +4 -0
  15. package/miniprogram_dist/aside/index.wxml +5 -0
  16. package/miniprogram_dist/aside/index.wxss +1 -0
  17. package/miniprogram_dist/avatar/index.js +35 -0
  18. package/miniprogram_dist/avatar/index.json +4 -0
  19. package/miniprogram_dist/avatar/index.wxml +13 -0
  20. package/miniprogram_dist/avatar/index.wxss +1 -0
  21. package/miniprogram_dist/back-top/index.js +38 -0
  22. package/miniprogram_dist/back-top/index.json +7 -0
  23. package/miniprogram_dist/back-top/index.wxml +5 -0
  24. package/miniprogram_dist/back-top/index.wxss +1 -0
  25. package/miniprogram_dist/badge/index.js +35 -0
  26. package/miniprogram_dist/badge/index.json +4 -0
  27. package/miniprogram_dist/badge/index.wxml +9 -0
  28. package/miniprogram_dist/badge/index.wxss +1 -0
  29. package/miniprogram_dist/button/index.js +39 -0
  30. package/miniprogram_dist/button/index.json +4 -0
  31. package/miniprogram_dist/button/index.wxml +5 -0
  32. package/miniprogram_dist/button/index.wxss +1 -0
  33. package/miniprogram_dist/captcha/index.js +37 -0
  34. package/miniprogram_dist/captcha/index.json +8 -0
  35. package/miniprogram_dist/captcha/index.wxml +38 -0
  36. package/miniprogram_dist/captcha/index.wxss +1 -0
  37. package/miniprogram_dist/card/index.js +30 -0
  38. package/miniprogram_dist/card/index.json +4 -0
  39. package/miniprogram_dist/card/index.wxml +27 -0
  40. package/miniprogram_dist/card/index.wxss +1 -0
  41. package/miniprogram_dist/category-menu/index.js +42 -0
  42. package/miniprogram_dist/category-menu/index.json +4 -0
  43. package/miniprogram_dist/category-menu/index.wxml +23 -0
  44. package/miniprogram_dist/category-menu/index.wxss +1 -0
  45. package/miniprogram_dist/cell/index.js +48 -0
  46. package/miniprogram_dist/cell/index.json +7 -0
  47. package/miniprogram_dist/cell/index.wxml +35 -0
  48. package/miniprogram_dist/cell/index.wxss +1 -0
  49. package/miniprogram_dist/cell-group/index.js +13 -0
  50. package/miniprogram_dist/cell-group/index.json +4 -0
  51. package/miniprogram_dist/cell-group/index.wxml +9 -0
  52. package/miniprogram_dist/cell-group/index.wxss +1 -0
  53. package/miniprogram_dist/checkbox/index.js +50 -0
  54. package/miniprogram_dist/checkbox/index.json +4 -0
  55. package/miniprogram_dist/checkbox/index.wxml +17 -0
  56. package/miniprogram_dist/checkbox/index.wxss +1 -0
  57. package/miniprogram_dist/circle-progress/index.js +52 -0
  58. package/miniprogram_dist/circle-progress/index.json +4 -0
  59. package/miniprogram_dist/circle-progress/index.wxml +13 -0
  60. package/miniprogram_dist/circle-progress/index.wxss +1 -0
  61. package/miniprogram_dist/collapse/index.js +31 -0
  62. package/miniprogram_dist/collapse/index.json +4 -0
  63. package/miniprogram_dist/collapse/index.wxml +5 -0
  64. package/miniprogram_dist/collapse/index.wxss +1 -0
  65. package/miniprogram_dist/collapse-item/index.js +42 -0
  66. package/miniprogram_dist/collapse-item/index.json +7 -0
  67. package/miniprogram_dist/collapse-item/index.wxml +18 -0
  68. package/miniprogram_dist/collapse-item/index.wxss +1 -0
  69. package/miniprogram_dist/common/runtime.js +234 -0
  70. package/miniprogram_dist/container/index.js +18 -0
  71. package/miniprogram_dist/container/index.json +4 -0
  72. package/miniprogram_dist/container/index.wxml +5 -0
  73. package/miniprogram_dist/container/index.wxss +1 -0
  74. package/miniprogram_dist/count-down/index.js +58 -0
  75. package/miniprogram_dist/count-down/index.json +4 -0
  76. package/miniprogram_dist/count-down/index.wxml +14 -0
  77. package/miniprogram_dist/count-down/index.wxss +1 -0
  78. package/miniprogram_dist/count-up/index.js +56 -0
  79. package/miniprogram_dist/count-up/index.json +4 -0
  80. package/miniprogram_dist/count-up/index.wxml +2 -0
  81. package/miniprogram_dist/count-up/index.wxss +1 -0
  82. package/miniprogram_dist/date-time-picker/index.js +134 -0
  83. package/miniprogram_dist/date-time-picker/index.json +4 -0
  84. package/miniprogram_dist/date-time-picker/index.wxml +77 -0
  85. package/miniprogram_dist/date-time-picker/index.wxss +1 -0
  86. package/miniprogram_dist/divider/index.js +22 -0
  87. package/miniprogram_dist/divider/index.json +4 -0
  88. package/miniprogram_dist/divider/index.wxml +13 -0
  89. package/miniprogram_dist/divider/index.wxss +1 -0
  90. package/miniprogram_dist/drop-down-menu/index.js +33 -0
  91. package/miniprogram_dist/drop-down-menu/index.json +7 -0
  92. package/miniprogram_dist/drop-down-menu/index.wxml +19 -0
  93. package/miniprogram_dist/drop-down-menu/index.wxss +1 -0
  94. package/miniprogram_dist/empty/index.js +21 -0
  95. package/miniprogram_dist/empty/index.json +7 -0
  96. package/miniprogram_dist/empty/index.wxml +17 -0
  97. package/miniprogram_dist/empty/index.wxss +1 -0
  98. package/miniprogram_dist/fixed-view/index.js +36 -0
  99. package/miniprogram_dist/fixed-view/index.json +4 -0
  100. package/miniprogram_dist/fixed-view/index.wxml +9 -0
  101. package/miniprogram_dist/fixed-view/index.wxss +1 -0
  102. package/miniprogram_dist/flex/index.js +31 -0
  103. package/miniprogram_dist/flex/index.json +4 -0
  104. package/miniprogram_dist/flex/index.wxml +5 -0
  105. package/miniprogram_dist/flex/index.wxss +1 -0
  106. package/miniprogram_dist/float-button/index.js +35 -0
  107. package/miniprogram_dist/float-button/index.json +7 -0
  108. package/miniprogram_dist/float-button/index.wxml +8 -0
  109. package/miniprogram_dist/float-button/index.wxss +1 -0
  110. package/miniprogram_dist/footer/index.js +17 -0
  111. package/miniprogram_dist/footer/index.json +4 -0
  112. package/miniprogram_dist/footer/index.wxml +5 -0
  113. package/miniprogram_dist/footer/index.wxss +1 -0
  114. package/miniprogram_dist/form/index.js +41 -0
  115. package/miniprogram_dist/form/index.json +4 -0
  116. package/miniprogram_dist/form/index.wxml +5 -0
  117. package/miniprogram_dist/form/index.wxss +1 -0
  118. package/miniprogram_dist/form-item/index.js +30 -0
  119. package/miniprogram_dist/form-item/index.json +4 -0
  120. package/miniprogram_dist/form-item/index.wxml +20 -0
  121. package/miniprogram_dist/form-item/index.wxss +1 -0
  122. package/miniprogram_dist/grid/index.js +22 -0
  123. package/miniprogram_dist/grid/index.json +4 -0
  124. package/miniprogram_dist/grid/index.wxml +5 -0
  125. package/miniprogram_dist/grid/index.wxss +1 -0
  126. package/miniprogram_dist/grid-item/index.js +41 -0
  127. package/miniprogram_dist/grid-item/index.json +7 -0
  128. package/miniprogram_dist/grid-item/index.wxml +21 -0
  129. package/miniprogram_dist/grid-item/index.wxss +1 -0
  130. package/miniprogram_dist/guide/index.js +93 -0
  131. package/miniprogram_dist/guide/index.json +4 -0
  132. package/miniprogram_dist/guide/index.wxml +28 -0
  133. package/miniprogram_dist/guide/index.wxss +1 -0
  134. package/miniprogram_dist/header/index.js +17 -0
  135. package/miniprogram_dist/header/index.json +4 -0
  136. package/miniprogram_dist/header/index.wxml +5 -0
  137. package/miniprogram_dist/header/index.wxss +1 -0
  138. package/miniprogram_dist/highlight/index.js +42 -0
  139. package/miniprogram_dist/highlight/index.json +4 -0
  140. package/miniprogram_dist/highlight/index.wxml +10 -0
  141. package/miniprogram_dist/highlight/index.wxss +1 -0
  142. package/miniprogram_dist/icon/index.js +26 -0
  143. package/miniprogram_dist/icon/index.json +4 -0
  144. package/miniprogram_dist/icon/index.wxml +5 -0
  145. package/miniprogram_dist/icon/index.wxss +1 -0
  146. package/miniprogram_dist/image/index.js +51 -0
  147. package/miniprogram_dist/image/index.json +4 -0
  148. package/miniprogram_dist/image/index.wxml +13 -0
  149. package/miniprogram_dist/image/index.wxss +1 -0
  150. package/miniprogram_dist/input/index.js +121 -0
  151. package/miniprogram_dist/input/index.json +7 -0
  152. package/miniprogram_dist/input/index.wxml +35 -0
  153. package/miniprogram_dist/input/index.wxss +1 -0
  154. package/miniprogram_dist/input-number/index.js +71 -0
  155. package/miniprogram_dist/input-number/index.json +7 -0
  156. package/miniprogram_dist/input-number/index.wxml +9 -0
  157. package/miniprogram_dist/input-number/index.wxss +1 -0
  158. package/miniprogram_dist/keyboard/index.js +84 -0
  159. package/miniprogram_dist/keyboard/index.json +7 -0
  160. package/miniprogram_dist/keyboard/index.wxml +27 -0
  161. package/miniprogram_dist/keyboard/index.wxss +1 -0
  162. package/miniprogram_dist/lazy-image/index.js +53 -0
  163. package/miniprogram_dist/lazy-image/index.json +4 -0
  164. package/miniprogram_dist/lazy-image/index.wxml +16 -0
  165. package/miniprogram_dist/lazy-image/index.wxss +1 -0
  166. package/miniprogram_dist/line-progress/index.js +45 -0
  167. package/miniprogram_dist/line-progress/index.json +4 -0
  168. package/miniprogram_dist/line-progress/index.wxml +14 -0
  169. package/miniprogram_dist/line-progress/index.wxss +1 -0
  170. package/miniprogram_dist/load-more/index.js +23 -0
  171. package/miniprogram_dist/load-more/index.json +7 -0
  172. package/miniprogram_dist/load-more/index.wxml +21 -0
  173. package/miniprogram_dist/load-more/index.wxss +1 -0
  174. package/miniprogram_dist/loading/index.js +28 -0
  175. package/miniprogram_dist/loading/index.json +4 -0
  176. package/miniprogram_dist/loading/index.wxml +12 -0
  177. package/miniprogram_dist/loading/index.wxss +1 -0
  178. package/miniprogram_dist/main/index.js +63 -0
  179. package/miniprogram_dist/main/index.json +4 -0
  180. package/miniprogram_dist/main/index.wxml +5 -0
  181. package/miniprogram_dist/main/index.wxss +1 -0
  182. package/miniprogram_dist/navbar/index.js +37 -0
  183. package/miniprogram_dist/navbar/index.json +7 -0
  184. package/miniprogram_dist/navbar/index.wxml +23 -0
  185. package/miniprogram_dist/navbar/index.wxss +1 -0
  186. package/miniprogram_dist/notice-bar/index.js +79 -0
  187. package/miniprogram_dist/notice-bar/index.json +7 -0
  188. package/miniprogram_dist/notice-bar/index.wxml +18 -0
  189. package/miniprogram_dist/notice-bar/index.wxss +1 -0
  190. package/miniprogram_dist/page/index.js +14 -0
  191. package/miniprogram_dist/page/index.json +4 -0
  192. package/miniprogram_dist/page/index.wxml +7 -0
  193. package/miniprogram_dist/page/index.wxss +0 -0
  194. package/miniprogram_dist/pin-input/index.js +32 -0
  195. package/miniprogram_dist/pin-input/index.json +4 -0
  196. package/miniprogram_dist/pin-input/index.wxml +5 -0
  197. package/miniprogram_dist/pin-input/index.wxss +1 -0
  198. package/miniprogram_dist/popup/index.js +60 -0
  199. package/miniprogram_dist/popup/index.json +4 -0
  200. package/miniprogram_dist/popup/index.wxml +9 -0
  201. package/miniprogram_dist/popup/index.wxss +1 -0
  202. package/miniprogram_dist/pull-refresh/index.js +56 -0
  203. package/miniprogram_dist/pull-refresh/index.json +4 -0
  204. package/miniprogram_dist/pull-refresh/index.wxml +10 -0
  205. package/miniprogram_dist/pull-refresh/index.wxss +1 -0
  206. package/miniprogram_dist/radio/index.js +35 -0
  207. package/miniprogram_dist/radio/index.json +4 -0
  208. package/miniprogram_dist/radio/index.wxml +9 -0
  209. package/miniprogram_dist/radio/index.wxss +1 -0
  210. package/miniprogram_dist/radio-group/index.js +14 -0
  211. package/miniprogram_dist/radio-group/index.json +4 -0
  212. package/miniprogram_dist/radio-group/index.wxml +5 -0
  213. package/miniprogram_dist/radio-group/index.wxss +1 -0
  214. package/miniprogram_dist/rate/index.js +88 -0
  215. package/miniprogram_dist/rate/index.json +4 -0
  216. package/miniprogram_dist/rate/index.wxml +16 -0
  217. package/miniprogram_dist/rate/index.wxss +1 -0
  218. package/miniprogram_dist/safe-area/index.js +14 -0
  219. package/miniprogram_dist/safe-area/index.json +4 -0
  220. package/miniprogram_dist/safe-area/index.wxml +5 -0
  221. package/miniprogram_dist/safe-area/index.wxss +1 -0
  222. package/miniprogram_dist/scroll-list/index.js +54 -0
  223. package/miniprogram_dist/scroll-list/index.json +4 -0
  224. package/miniprogram_dist/scroll-list/index.wxml +13 -0
  225. package/miniprogram_dist/scroll-list/index.wxss +1 -0
  226. package/miniprogram_dist/search/index.js +59 -0
  227. package/miniprogram_dist/search/index.json +7 -0
  228. package/miniprogram_dist/search/index.wxml +17 -0
  229. package/miniprogram_dist/search/index.wxss +1 -0
  230. package/miniprogram_dist/share-panel/index.js +70 -0
  231. package/miniprogram_dist/share-panel/index.json +7 -0
  232. package/miniprogram_dist/share-panel/index.wxml +25 -0
  233. package/miniprogram_dist/share-panel/index.wxss +1 -0
  234. package/miniprogram_dist/skeleton/index.js +27 -0
  235. package/miniprogram_dist/skeleton/index.json +4 -0
  236. package/miniprogram_dist/skeleton/index.wxml +30 -0
  237. package/miniprogram_dist/skeleton/index.wxss +1 -0
  238. package/miniprogram_dist/slider/index.js +78 -0
  239. package/miniprogram_dist/slider/index.json +4 -0
  240. package/miniprogram_dist/slider/index.wxml +13 -0
  241. package/miniprogram_dist/slider/index.wxss +1 -0
  242. package/miniprogram_dist/steps/index.js +19 -0
  243. package/miniprogram_dist/steps/index.json +7 -0
  244. package/miniprogram_dist/steps/index.wxml +27 -0
  245. package/miniprogram_dist/steps/index.wxss +1 -0
  246. package/miniprogram_dist/sticky/index.js +18 -0
  247. package/miniprogram_dist/sticky/index.json +4 -0
  248. package/miniprogram_dist/sticky/index.wxml +5 -0
  249. package/miniprogram_dist/sticky/index.wxss +0 -0
  250. package/miniprogram_dist/swipe-action/index.js +38 -0
  251. package/miniprogram_dist/swipe-action/index.json +4 -0
  252. package/miniprogram_dist/swipe-action/index.wxml +14 -0
  253. package/miniprogram_dist/swipe-action/index.wxss +1 -0
  254. package/miniprogram_dist/switch/index.js +86 -0
  255. package/miniprogram_dist/switch/index.json +7 -0
  256. package/miniprogram_dist/switch/index.wxml +31 -0
  257. package/miniprogram_dist/switch/index.wxss +1 -0
  258. package/miniprogram_dist/tabbar/index.js +41 -0
  259. package/miniprogram_dist/tabbar/index.json +4 -0
  260. package/miniprogram_dist/tabbar/index.wxml +5 -0
  261. package/miniprogram_dist/tabbar/index.wxss +1 -0
  262. package/miniprogram_dist/tabbar-item/index.js +47 -0
  263. package/miniprogram_dist/tabbar-item/index.json +8 -0
  264. package/miniprogram_dist/tabbar-item/index.wxml +18 -0
  265. package/miniprogram_dist/tabbar-item/index.wxss +1 -0
  266. package/miniprogram_dist/tabs/index.js +54 -0
  267. package/miniprogram_dist/tabs/index.json +4 -0
  268. package/miniprogram_dist/tabs/index.wxml +17 -0
  269. package/miniprogram_dist/tabs/index.wxss +1 -0
  270. package/miniprogram_dist/tag/index.js +22 -0
  271. package/miniprogram_dist/tag/index.json +4 -0
  272. package/miniprogram_dist/tag/index.wxml +5 -0
  273. package/miniprogram_dist/tag/index.wxss +1 -0
  274. package/miniprogram_dist/text/index.js +56 -0
  275. package/miniprogram_dist/text/index.json +4 -0
  276. package/miniprogram_dist/text/index.wxml +5 -0
  277. package/miniprogram_dist/text/index.wxss +1 -0
  278. package/miniprogram_dist/textarea/index.js +60 -0
  279. package/miniprogram_dist/textarea/index.json +4 -0
  280. package/miniprogram_dist/textarea/index.wxml +8 -0
  281. package/miniprogram_dist/textarea/index.wxss +1 -0
  282. package/miniprogram_dist/toast/index.js +46 -0
  283. package/miniprogram_dist/toast/index.json +8 -0
  284. package/miniprogram_dist/toast/index.wxml +16 -0
  285. package/miniprogram_dist/toast/index.wxss +1 -0
  286. package/miniprogram_dist/upload/index.js +79 -0
  287. package/miniprogram_dist/upload/index.json +7 -0
  288. package/miniprogram_dist/upload/index.wxml +38 -0
  289. package/miniprogram_dist/upload/index.wxss +1 -0
  290. package/package.json +16 -0
@@ -0,0 +1,14 @@
1
+ const { createReactiveProxy, batchSetData } = require('../common/runtime');
2
+
3
+ Component({
4
+ properties: {
5
+ class: className: {
6
+ type: null,
7
+ value: '',
8
+ },
9
+ children: {
10
+ type: null,
11
+ },
12
+ },
13
+
14
+ });
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated"
4
+ }
@@ -0,0 +1,7 @@
1
+ <view class="ln-page {className}">
2
+ <view class="ln-page__body">
3
+ <block wx:if="{{children}}">
4
+ <slot />
5
+ {{/if}} </block>
6
+ </view>
7
+ </view>
File without changes
@@ -0,0 +1,32 @@
1
+ const { createReactiveProxy, batchSetData } = require('../common/runtime');
2
+
3
+ Component({
4
+ data: {
5
+ isComplete: undefined,
6
+ },
7
+
8
+ observers: {
9
+ '**': function() {
10
+ this.setData({ isComplete: internalValues.filter(Boolean).length === length });
11
+ },
12
+ },
13
+
14
+ methods: {
15
+ __handler_input(e) {
16
+ ((e: Event) => handleInput(index, e)).call(this, e);
17
+ },
18
+ __handler_keydown(e) {
19
+ ((e: KeyboardEvent) => handleKeyDown(index, e)).call(this, e);
20
+ },
21
+ handlePaste(e) {
22
+ // 用户定义的处理函数
23
+ },
24
+ __handler_focus(e) {
25
+ (() => (focusedIndex = index)).call(this, e);
26
+ },
27
+ __handler_blur(e) {
28
+ (() => (focusedIndex = null)).call(this, e);
29
+ },
30
+ },
31
+
32
+ });
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated"
4
+ }
@@ -0,0 +1,5 @@
1
+ <view class="{{rootClasses}}" role="group" aria-label="PIN input">
2
+ <block wx:for="{{inputIndices}}" wx:for-item="index" wx:key="index">
3
+ <input type="{{isPassword ? 'password' : type === 'number' ? 'text' : type}}" inputmode="{{type === 'number' ? 'numeric' : 'text'}}" class="ln-pin-input__input" value="{{internalValues[index] || ''}}" placeholder="{{placeholder}}" disabled="{{disabled}}" maxlength="1" autocomplete="off" aria-label="PIN digit {index + 1} of {length}" this="{{inputRefs[index]}}" bindchange="__bind_inputRefs[index]" class="{{focusedIndex === index? 'is-focused' : ''}}" class="{{!!internalValues[index]? 'is-filled' : ''}}" bindinput="__handler_1" bindkeydown="__handler_2" bindpaste="handlePaste" bindfocus="__handler_3" bindblur="__handler_4" />
4
+ </block>
5
+ </view>
@@ -0,0 +1 @@
1
+ .ln-pin-input{display:inline-flex;gap:16rpx;align-items:center}.ln-pin-input__input{display:flex;align-items:center;justify-content:center;width:64rpx;height:64rpx;padding:0;box-sizing:border-box;font-size:28rpx;font-weight:500;text-align:center;line-height:1;color:#303133;background-color:#fff;border:1px solid #e4e7ed;border-radius:16rpx;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.ln-pin-input__input::placeholder{color:#a8abb2}.ln-pin-input__input:hover:not(:disabled):not(:focus){border-color:#909399}.ln-pin-input__input:focus{border-color:#0062ff}.ln-pin-input__input:focus::placeholder{color:rgba(0,0,0,0)}.ln-pin-input__input.is-focused{border-color:#0062ff}.ln-pin-input__input.is-filled,.ln-pin-input__input.is-filled:focus,.ln-pin-input__input.is-filled.is-focused{border-color:#31c27c !important}.ln-pin-input__input:disabled{background-color:#f5f7fa;color:#c0c4cc;border-color:#ebeef5;cursor:not-allowed}.ln-pin-input--small{gap:12rpx}.ln-pin-input--small .ln-pin-input__input{width:48rpx;height:48rpx;font-size:26rpx}.ln-pin-input--large{gap:20rpx}.ln-pin-input--large .ln-pin-input__input{width:80rpx;height:80rpx;font-size:34rpx}.ln-pin-input.is-password .ln-pin-input__input::placeholder{color:rgba(0,0,0,0)}.ln-pin-input.is-complete .ln-pin-input__input,.ln-pin-input.is-complete .ln-pin-input__input:focus{border-color:#31c27c}.ln-pin-input.is-disabled .ln-pin-input__input{background-color:#f5f7fa;color:#c0c4cc;border-color:#ebeef5;cursor:not-allowed}.dark .ln-pin-input .ln-pin-input__input{background-color:#1d1e1f;border-color:hsla(0,0%,100%,.08);color:#e5eaf3}.dark .ln-pin-input .ln-pin-input__input::placeholder{color:#6b6f76}.dark .ln-pin-input .ln-pin-input__input:hover:not(:disabled):not(:focus){border-color:#a3a6ad}.dark .ln-pin-input .ln-pin-input__input:focus{border-color:#0062ff}.dark .ln-pin-input .ln-pin-input__input.is-filled,.dark .ln-pin-input .ln-pin-input__input.is-filled:focus,.dark .ln-pin-input .ln-pin-input__input.is-filled.is-focused{border-color:#31c27c !important}.dark .ln-pin-input .ln-pin-input__input:disabled{background-color:#141415;color:#6b6f76;border-color:hsla(0,0%,100%,.08)}
@@ -0,0 +1,60 @@
1
+ const { createReactiveProxy, batchSetData } = require('../common/runtime');
2
+
3
+ Component({
4
+ properties: {
5
+ visible: {
6
+ type: Boolean,
7
+ value: false,
8
+ },
9
+ position: {
10
+ type: String,
11
+ value: 'bottom',
12
+ },
13
+ onclose: {
14
+ type: null,
15
+ },
16
+ children: {
17
+ type: null,
18
+ },
19
+ },
20
+
21
+ data: {
22
+ mounted: false,
23
+ leaving: false,
24
+ },
25
+
26
+ lifetimes: {
27
+ attached() {
28
+ const self = this;
29
+ // $bindable: visible
30
+ this.__bind_visible = function(e) {
31
+ self.setData({ visible: e.detail.value });
32
+ self.triggerEvent('update:visible', e.detail.value);
33
+ };
34
+ // $effect #1
35
+ if (visible) {
36
+ mounted = true;
37
+ leaving = false;
38
+ } else if (mounted) {
39
+ leaving = true;
40
+ };
41
+ },
42
+ },
43
+
44
+ methods: {
45
+ close(e) {
46
+ // 用户定义的处理函数
47
+ },
48
+ onAnimEnd(e) {
49
+ // 用户定义的处理函数
50
+ },
51
+ onAnimEnd(e) {
52
+ // 用户定义的处理函数
53
+ },
54
+ __bind_visible(e) {
55
+ this.setData({ visible: e.detail.value });
56
+ this.triggerEvent('update:visible', e.detail.value);
57
+ },
58
+ },
59
+
60
+ });
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated"
4
+ }
@@ -0,0 +1,9 @@
1
+ <block wx:if="{{mounted}}">
2
+ <view class="ln-overlay" role="presentation" class="{{!leaving? 'ln-overlay--enter' : ''}}" class="{{leaving? 'ln-overlay--leave' : ''}}" bindtap="close" bindanimationend="onAnimEnd">
3
+ </view>
4
+ <view class="ln-popup ln-popup--{position}" class="{{!leaving? 'ln-popup--enter' : ''}}" class="{{leaving? 'ln-popup--leave' : ''}}" bindanimationend="onAnimEnd">
5
+ <block wx:if="{{children}}">
6
+ <slot />
7
+ {{/if}} </block>
8
+ </view>
9
+ {{/if}}</block>
@@ -0,0 +1 @@
1
+ .ln-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);z-index:2001}.ln-overlay--enter{animation:ln-overlay-in .2s ease both}.ln-overlay--leave{animation:ln-overlay-out .2s ease both}.ln-popup{position:fixed;z-index:2001;background-color:#fff;overflow-y:auto;-webkit-overflow-scrolling:touch}.ln-popup--bottom{left:0;right:0;bottom:0;border-radius:32rpx 32rpx 0 0;padding-bottom:env(safe-area-inset-bottom)}.ln-popup--top{left:0;right:0;top:0;border-radius:0 0 32rpx 32rpx}.ln-popup--center{top:50%;left:50%;transform:translate(-50%, -50%);border-radius:32rpx;max-width:85%;max-height:80%}.ln-popup--left{top:0;bottom:0;left:0;width:70%}.ln-popup--right{top:0;bottom:0;right:0;width:70%}.ln-popup--enter.ln-popup--bottom{animation:ln-popup-slide-up .3s ease both}.ln-popup--enter.ln-popup--top{animation:ln-popup-slide-down .3s ease both}.ln-popup--enter.ln-popup--left{animation:ln-popup-slide-right .3s ease both}.ln-popup--enter.ln-popup--right{animation:ln-popup-slide-left .3s ease both}.ln-popup--enter.ln-popup--center{animation:ln-popup-scale-in .2s ease both}.ln-popup--leave.ln-popup--bottom{animation:ln-popup-slide-up .3s ease reverse both}.ln-popup--leave.ln-popup--top{animation:ln-popup-slide-down .3s ease reverse both}.ln-popup--leave.ln-popup--left{animation:ln-popup-slide-right .3s ease reverse both}.ln-popup--leave.ln-popup--right{animation:ln-popup-slide-left .3s ease reverse both}.ln-popup--leave.ln-popup--center{animation:ln-popup-scale-out .2s ease both}.dark .ln-popup{background-color:#1d1e1f}@keyframes ln-overlay-in{from{opacity:0}to{opacity:1}}@keyframes ln-overlay-out{from{opacity:1}to{opacity:0}}@keyframes ln-popup-slide-up{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes ln-popup-slide-down{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes ln-popup-slide-right{from{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes ln-popup-slide-left{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes ln-popup-scale-in{from{opacity:0;transform:translate(-50%, -50%) scale(0.85)}to{opacity:1;transform:translate(-50%, -50%) scale(1)}}@keyframes ln-popup-scale-out{from{opacity:1;transform:translate(-50%, -50%) scale(1)}to{opacity:0;transform:translate(-50%, -50%) scale(0.85)}}
@@ -0,0 +1,56 @@
1
+ const { createReactiveProxy, batchSetData } = require('../common/runtime');
2
+
3
+ Component({
4
+ properties: {
5
+ loading: {
6
+ type: Boolean,
7
+ value: false,
8
+ },
9
+ pullingText: {
10
+ type: String,
11
+ value: '下拉刷新',
12
+ },
13
+ loadingText: {
14
+ type: String,
15
+ value: '加载中...',
16
+ },
17
+ onrefresh: {
18
+ type: null,
19
+ },
20
+ children: {
21
+ type: null,
22
+ },
23
+ },
24
+
25
+ data: {
26
+ offset: 0,
27
+ },
28
+
29
+ lifetimes: {
30
+ attached() {
31
+ const self = this;
32
+ // $bindable: loading
33
+ this.__bind_loading = function(e) {
34
+ self.setData({ loading: e.detail.value });
35
+ self.triggerEvent('update:loading', e.detail.value);
36
+ };
37
+ },
38
+ },
39
+
40
+ methods: {
41
+ onTouchStart(e) {
42
+ // 用户定义的处理函数
43
+ },
44
+ onTouchMove(e) {
45
+ // 用户定义的处理函数
46
+ },
47
+ onTouchEnd(e) {
48
+ // 用户定义的处理函数
49
+ },
50
+ __bind_loading(e) {
51
+ this.setData({ loading: e.detail.value });
52
+ this.triggerEvent('update:loading', e.detail.value);
53
+ },
54
+ },
55
+
56
+ });
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated"
4
+ }
@@ -0,0 +1,10 @@
1
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
2
+ <view class="ln-pull-refresh" bindtouchstart="onTouchStart" bindtouchmove="onTouchMove" bindtouchend="onTouchEnd">
3
+ <view class="ln-pull-refresh__track" style="transform: {{translateY({loading ? 50 : offset}px)}}">
4
+ <view class="ln-pull-refresh__head">
5
+ {{loading ? loadingText : pullingText}} </view>
6
+ <block wx:if="{{children}}">
7
+ <slot />
8
+ {{/if}} </block>
9
+ </view>
10
+ </view>
@@ -0,0 +1 @@
1
+ .ln-pull-refresh{overflow:hidden}.ln-pull-refresh__track{position:relative;transition:transform .3s}.ln-pull-refresh__head{position:absolute;left:0;right:0;bottom:100%;display:flex;align-items:center;justify-content:center;height:100rpx;font-size:28rpx;color:#909399}.dark .ln-pull-refresh .ln-pull-refresh__head{color:#a3a6ad}
@@ -0,0 +1,35 @@
1
+ const { createReactiveProxy, batchSetData } = require('../common/runtime');
2
+
3
+ Component({
4
+ properties: {
5
+ value: {
6
+ type: String,
7
+ value: '',
8
+ },
9
+ checked: {
10
+ type: Boolean,
11
+ value: false,
12
+ },
13
+ disabled: {
14
+ type: Boolean,
15
+ value: false,
16
+ },
17
+ size: {
18
+ type: String,
19
+ value: 'medium',
20
+ },
21
+ onchange: {
22
+ type: null,
23
+ },
24
+ children: {
25
+ type: null,
26
+ },
27
+ },
28
+
29
+ methods: {
30
+ handleClick(e) {
31
+ // 用户定义的处理函数
32
+ },
33
+ },
34
+
35
+ });
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated"
4
+ }
@@ -0,0 +1,9 @@
1
+ <button type="button" class="ln-radio {size !== 'medium' ? `ln-radio--${size}` : ''}" disabled="{{disabled}}" class="{{checked? 'is-checked' : ''}}" class="{{disabled? 'is-disabled' : ''}}" bindtap="handleClick">
2
+ <text class="ln-radio__inner">
3
+ </text>
4
+ <block wx:if="{{children}}">
5
+ <text class="ln-radio__label">
6
+ <slot />
7
+ </text>
8
+ {{/if}} </block>
9
+ </button>
@@ -0,0 +1 @@
1
+ .ln-radio{display:inline-flex;align-items:center;cursor:pointer;user-select:none;font-size:28rpx;font-family:inherit;color:#303133;line-height:64rpx;min-height:64rpx;margin-right:40rpx;padding:0;border:none;background:none;white-space:nowrap}.ln-radio--small{font-size:26rpx}.ln-radio--small .ln-radio__inner{width:32rpx;height:32rpx}.ln-radio--small .ln-radio__inner::after{width:16rpx;height:16rpx}.ln-radio--large{font-size:34rpx}.ln-radio--large .ln-radio__inner{width:48rpx;height:48rpx}.ln-radio--large .ln-radio__inner::after{width:24rpx;height:24rpx}.ln-radio__inner{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40rpx;height:40rpx;border:1px solid #e4e7ed;border-radius:50%;background-color:#fff;transition:border-color .2s;box-sizing:border-box}.ln-radio__inner::after{content:"";display:block;width:20rpx;height:20rpx;border-radius:50%;background-color:#0062ff;transition:transform .2s;transform:scale(0)}.ln-radio.is-checked .ln-radio__inner{border-color:#0062ff}.ln-radio.is-checked .ln-radio__inner::after{transform:scale(1)}.ln-radio__label{margin-left:16rpx;color:#303133}.ln-radio.is-disabled{cursor:not-allowed;opacity:.5}.dark .ln-radio .ln-radio__inner{background-color:#1d1e1f;border-color:color-mix(in oklab, #2c2d2e 70%, #a3a6ad)}.dark .ln-radio .ln-radio__label{color:#e5eaf3}.ln-radio-group{display:inline-flex;flex-wrap:wrap}.ln-radio-group--vertical{flex-direction:column}.ln-radio-group--vertical .ln-radio{margin-right:0;margin-bottom:16rpx}
@@ -0,0 +1,14 @@
1
+ const { createReactiveProxy, batchSetData } = require('../common/runtime');
2
+
3
+ Component({
4
+ properties: {
5
+ direction: {
6
+ type: String,
7
+ value: 'horizontal',
8
+ },
9
+ children: {
10
+ type: null,
11
+ },
12
+ },
13
+
14
+ });
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated"
4
+ }
@@ -0,0 +1,5 @@
1
+ <view class="ln-radio-group" class="{{direction === 'vertical'? 'ln-radio-group--vertical' : ''}}">
2
+ <block wx:if="{{children}}">
3
+ <slot />
4
+ {{/if}} </block>
5
+ </view>
@@ -0,0 +1 @@
1
+ .ln-radio{display:inline-flex;align-items:center;cursor:pointer;user-select:none;font-size:28rpx;font-family:inherit;color:#303133;line-height:64rpx;min-height:64rpx;margin-right:40rpx;padding:0;border:none;background:none;white-space:nowrap}.ln-radio--small{font-size:26rpx}.ln-radio--small .ln-radio__inner{width:32rpx;height:32rpx}.ln-radio--small .ln-radio__inner::after{width:16rpx;height:16rpx}.ln-radio--large{font-size:34rpx}.ln-radio--large .ln-radio__inner{width:48rpx;height:48rpx}.ln-radio--large .ln-radio__inner::after{width:24rpx;height:24rpx}.ln-radio__inner{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40rpx;height:40rpx;border:1px solid #e4e7ed;border-radius:50%;background-color:#fff;transition:border-color .2s;box-sizing:border-box}.ln-radio__inner::after{content:"";display:block;width:20rpx;height:20rpx;border-radius:50%;background-color:#0062ff;transition:transform .2s;transform:scale(0)}.ln-radio.is-checked .ln-radio__inner{border-color:#0062ff}.ln-radio.is-checked .ln-radio__inner::after{transform:scale(1)}.ln-radio__label{margin-left:16rpx;color:#303133}.ln-radio.is-disabled{cursor:not-allowed;opacity:.5}.dark .ln-radio .ln-radio__inner{background-color:#1d1e1f;border-color:color-mix(in oklab, #2c2d2e 70%, #a3a6ad)}.dark .ln-radio .ln-radio__label{color:#e5eaf3}.ln-radio-group{display:inline-flex;flex-wrap:wrap}.ln-radio-group--vertical{flex-direction:column}.ln-radio-group--vertical .ln-radio{margin-right:0;margin-bottom:16rpx}
@@ -0,0 +1,88 @@
1
+ const { createReactiveProxy, batchSetData } = require('../common/runtime');
2
+
3
+ Component({
4
+ properties: {
5
+ value: {
6
+ type: Number,
7
+ value: 0,
8
+ },
9
+ count: {
10
+ type: Number,
11
+ value: 5,
12
+ },
13
+ size: {
14
+ type: Number,
15
+ value: 20,
16
+ },
17
+ disabled: {
18
+ type: Boolean,
19
+ value: false,
20
+ },
21
+ readonly: {
22
+ type: Boolean,
23
+ value: false,
24
+ },
25
+ allowHalf: {
26
+ type: Boolean,
27
+ value: false,
28
+ },
29
+ clearable: {
30
+ type: Boolean,
31
+ value: false,
32
+ },
33
+ class: extraClass: {
34
+ type: null,
35
+ value: '',
36
+ },
37
+ onchange: {
38
+ type: null,
39
+ },
40
+ },
41
+
42
+ data: {
43
+ hoverValue: undefined,
44
+ displayValue: undefined,
45
+ stars: undefined,
46
+ interactive: undefined,
47
+ },
48
+
49
+ observers: {
50
+ 'value, hoverValue': function() {
51
+ this.setData({ displayValue: hoverValue ?? value });
52
+ },
53
+ 'count': function() {
54
+ this.setData({ stars: Array.from({ length: count }, (_: unknown, i: number) => i) });
55
+ },
56
+ 'readonly, disabled': function() {
57
+ this.setData({ interactive: !disabled && !readonly });
58
+ },
59
+ },
60
+
61
+ lifetimes: {
62
+ attached() {
63
+ const self = this;
64
+ // $bindable: value
65
+ this.__bind_value = function(e) {
66
+ self.setData({ value: e.detail.value });
67
+ self.triggerEvent('update:value', e.detail.value);
68
+ };
69
+ },
70
+ },
71
+
72
+ methods: {
73
+ onLeave(e) {
74
+ // 用户定义的处理函数
75
+ },
76
+ __handler_mousemove(e) {
77
+ ((e: MouseEvent) => onHover(index, e)).call(this, e);
78
+ },
79
+ __handler_click(e) {
80
+ ((e: MouseEvent) => onClick(index, e)).call(this, e);
81
+ },
82
+ __bind_value(e) {
83
+ this.setData({ value: e.detail.value });
84
+ this.triggerEvent('update:value', e.detail.value);
85
+ },
86
+ },
87
+
88
+ });
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated"
4
+ }
@@ -0,0 +1,16 @@
1
+ <view class="ln-rate {disabled ? 'is-disabled' : ''} {readonly ? 'is-readonly' : ''} {interactive ? 'is-interactive' : ''} {extraClass}" role="slider" aria-valuemin="{{0}}" aria-valuemax="{{count}}" aria-valuenow="{{value}}" aria-disabled="{{disabled}}" tabindex="{{disabled ? undefined : 0}}" style="font-size:{size}px" bindmouseleave="onLeave">
2
+ <block wx:for="{{stars}}" wx:for-item="index" wx:key="index">
3
+ {{@const ratio = fillRatio(index)}} <button type="button" class="ln-rate__item" aria-label="评分 {index + 1}" disabled="{{!interactive}}" bindmousemove="__handler_1" bindtap="__handler_2">
4
+ <text class="ln-rate__icon-wrapper">
5
+ <svg viewBox="0 0 24 24" class="ln-rate__icon ln-rate__icon--void" aria-hidden="true">
6
+ <path d="{{STAR_PATH}}" />
7
+ </svg>
8
+ <text class="ln-rate__icon-fill" class="{{ratio === 1? 'is-full' : ''}}" class="{{ratio === 0.5? 'is-half' : ''}}">
9
+ <svg viewBox="0 0 24 24" class="ln-rate__icon ln-rate__icon--filled" aria-hidden="true">
10
+ <path d="{{STAR_PATH}}" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
11
+ </svg>
12
+ </text>
13
+ </text>
14
+ </button>
15
+ </block>
16
+ </view>
@@ -0,0 +1 @@
1
+ .ln-rate{display:inline-flex;align-items:center;line-height:1;outline:none}.ln-rate__item{position:relative;display:inline-flex;cursor:pointer;font-size:inherit;background:none;border:none;padding:0;margin:0;line-height:1}.ln-rate__item:not(:last-child){margin-right:8rpx}.ln-rate__item:disabled{cursor:not-allowed}.ln-rate__icon-wrapper{position:relative;display:inline-flex;width:1em;height:1em;font-size:inherit;line-height:1;color:#c0c4cc;user-select:none;-webkit-user-select:none;transition:transform .2s ease}.ln-rate__icon{width:100%;height:100%;display:block}.ln-rate__icon--void{color:#c0c4cc}.ln-rate__icon--void path{fill:#c0c4cc;stroke:none}.ln-rate__icon--filled{color:#ff974a}.ln-rate__icon--filled path{fill:currentColor;stroke:none}.ln-rate__icon-fill{position:absolute;inset:0;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#ff974a;pointer-events:none;transition:clip-path .15s ease,color .2s ease;clip-path:inset(0 100% 0 0)}.ln-rate__icon-fill.is-full{clip-path:inset(0 0 0 0)}.ln-rate__icon-fill.is-half{clip-path:inset(0 50% 0 0)}.ln-rate.is-interactive .ln-rate__item:active .ln-rate__icon-wrapper{transform:scale(1.15)}.ln-rate.is-disabled .ln-rate__item{cursor:not-allowed}.ln-rate.is-disabled{opacity:.5}.ln-rate.is-readonly .ln-rate__item{cursor:default}.dark .ln-rate .ln-rate__icon--void{color:#58585b}.dark .ln-rate .ln-rate__icon--void path{fill:#58585b}
@@ -0,0 +1,14 @@
1
+ const { createReactiveProxy, batchSetData } = require('../common/runtime');
2
+
3
+ Component({
4
+ properties: {
5
+ position: {
6
+ type: String,
7
+ value: 'bottom',
8
+ },
9
+ children: {
10
+ type: null,
11
+ },
12
+ },
13
+
14
+ });
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated"
4
+ }
@@ -0,0 +1,5 @@
1
+ <view class="ln-safe-area ln-safe-area--{position}">
2
+ <block wx:if="{{children}}">
3
+ <slot />
4
+ {{/if}} </block>
5
+ </view>
@@ -0,0 +1 @@
1
+ .ln-safe-area--top{padding-top:env(safe-area-inset-top)}.ln-safe-area--bottom{padding-bottom:env(safe-area-inset-bottom)}
@@ -0,0 +1,54 @@
1
+ const { createReactiveProxy, batchSetData } = require('../common/runtime');
2
+
3
+ Component({
4
+ properties: {
5
+ loading: {
6
+ type: Boolean,
7
+ value: false,
8
+ },
9
+ finished: {
10
+ type: Boolean,
11
+ value: false,
12
+ },
13
+ finishedText: {
14
+ type: String,
15
+ value: '没有更多了',
16
+ },
17
+ loadingText: {
18
+ type: String,
19
+ value: '加载中...',
20
+ },
21
+ offset: {
22
+ type: Number,
23
+ value: 100,
24
+ },
25
+ onload: {
26
+ type: null,
27
+ },
28
+ children: {
29
+ type: null,
30
+ },
31
+ },
32
+
33
+ lifetimes: {
34
+ attached() {
35
+ const self = this;
36
+ // $bindable: loading
37
+ this.__bind_loading = function(e) {
38
+ self.setData({ loading: e.detail.value });
39
+ self.triggerEvent('update:loading', e.detail.value);
40
+ };
41
+ },
42
+ },
43
+
44
+ methods: {
45
+ handleScroll(e) {
46
+ // 用户定义的处理函数
47
+ },
48
+ __bind_loading(e) {
49
+ this.setData({ loading: e.detail.value });
50
+ this.triggerEvent('update:loading', e.detail.value);
51
+ },
52
+ },
53
+
54
+ });
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated"
4
+ }
@@ -0,0 +1,13 @@
1
+ <view class="ln-scroll-list" style="height: 100%; overflow-y: auto;" bindscroll="handleScroll">
2
+ <block wx:if="{{children}}">
3
+ <slot />
4
+ {{/if}} <block wx:if="{{loading}}">
5
+ <view class="ln-scroll-list__loading">
6
+ {{loadingText}} </view>
7
+ {{/if}} <block wx:if="{{finished}}">
8
+ <view class="ln-scroll-list__finished">
9
+ {{finishedText}} </view>
10
+ {{/if}} </block>
11
+ </block>
12
+ </block>
13
+ </view>
@@ -0,0 +1 @@
1
+ .ln-scroll-list{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;border-radius:12rpx}.ln-scroll-list::-webkit-scrollbar{display:none}.ln-scroll-list{scrollbar-width:none}.ln-scroll-list__loading{display:flex;align-items:center;justify-content:center;padding:32rpx 0;font-size:26rpx;color:#909399}.ln-scroll-list__finished{display:flex;align-items:center;justify-content:center;padding:32rpx 0;font-size:26rpx;color:#a8abb2}.dark .ln-scroll-list .ln-scroll-list__loading{color:#a3a6ad}.dark .ln-scroll-list .ln-scroll-list__finished{color:#6b6f76}
@@ -0,0 +1,59 @@
1
+ const { createReactiveProxy, batchSetData } = require('../common/runtime');
2
+
3
+ Component({
4
+ properties: {
5
+ value: {
6
+ type: String,
7
+ value: '',
8
+ },
9
+ placeholder: {
10
+ type: String,
11
+ value: '搜索',
12
+ },
13
+ showAction: {
14
+ type: Boolean,
15
+ value: false,
16
+ },
17
+ actionText: {
18
+ type: String,
19
+ value: '取消',
20
+ },
21
+ onsearch: {
22
+ type: null,
23
+ },
24
+ oncancel: {
25
+ type: null,
26
+ },
27
+ onclear: {
28
+ type: null,
29
+ },
30
+ },
31
+
32
+ lifetimes: {
33
+ attached() {
34
+ const self = this;
35
+ // $bindable: value
36
+ this.__bind_value = function(e) {
37
+ self.setData({ value: e.detail.value });
38
+ self.triggerEvent('update:value', e.detail.value);
39
+ };
40
+ },
41
+ },
42
+
43
+ methods: {
44
+ __handler_keydown(e) {
45
+ ((e: KeyboardEvent) => e.key === 'Enter' && handleSearch()).call(this, e);
46
+ },
47
+ handleClear(e) {
48
+ // 用户定义的处理函数
49
+ },
50
+ handleCancel(e) {
51
+ // 用户定义的处理函数
52
+ },
53
+ __bind_value(e) {
54
+ this.setData({ value: e.detail.value });
55
+ this.triggerEvent('update:value', e.detail.value);
56
+ },
57
+ },
58
+
59
+ });
@@ -0,0 +1,7 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "isolated",
4
+ "usingComponents": {
5
+ "icon": "../icon/index"
6
+ }
7
+ }
@@ -0,0 +1,17 @@
1
+ <view class="ln-search">
2
+ <view class="ln-search__field">
3
+ <text class="ln-search__icon">
4
+ <icon icon="{{SearchIcon}}" size="{{16}}" />
5
+ </text>
6
+ <input class="ln-search__input" type="search" placeholder="{{placeholder}}" bindkeydown="__handler_1" />
7
+ <block wx:if="{{value}}">
8
+ <button type="button" class="ln-search__clear" bindtap="handleClear">
9
+ <icon icon="{{X}}" size="{{14}}" />
10
+ </button>
11
+ {{/if}} </block>
12
+ </view>
13
+ <block wx:if="{{showAction}}">
14
+ <button type="button" class="ln-search__action" bindtap="handleCancel">
15
+ {{actionText}} </button>
16
+ {{/if}} </block>
17
+ </view>
@@ -0,0 +1 @@
1
+ .ln-search{display:flex;align-items:center;gap:16rpx;padding:16rpx 24rpx}.ln-search__field{flex:1;display:flex;align-items:center;height:72rpx;padding:0 24rpx;background-color:#e4e7ed;border-radius:36rpx}.ln-search__icon{flex-shrink:0;display:inline-flex;align-items:center;margin-right:16rpx;color:#909399}.ln-search__input{flex:1;border:none;outline:none;background:rgba(0,0,0,0);font-size:28rpx;color:#303133}.ln-search__input::placeholder{color:#a8abb2}.ln-search__clear{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:32rpx;height:32rpx;color:#a8abb2;cursor:pointer;padding:0;border:none;background:none}.ln-search__action{flex-shrink:0;font-size:28rpx;color:#0062ff;padding:0;border:none;background:none}.dark .ln-search .ln-search__field{background-color:#2c2d2e}.dark .ln-search .ln-search__icon{color:#a3a6ad}.dark .ln-search .ln-search__input{color:#e5eaf3}.dark .ln-search .ln-search__input::placeholder{color:#6b6f76}.dark .ln-search .ln-search__clear{color:#6b6f76}.dark .ln-search .ln-search__action{color:#0062ff}