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.
- package/miniprogram_dist/action-sheet/index.js +59 -0
- package/miniprogram_dist/action-sheet/index.json +4 -0
- package/miniprogram_dist/action-sheet/index.wxml +18 -0
- package/miniprogram_dist/action-sheet/index.wxss +1 -0
- package/miniprogram_dist/address-edit/index.js +130 -0
- package/miniprogram_dist/address-edit/index.json +4 -0
- package/miniprogram_dist/address-edit/index.wxml +63 -0
- package/miniprogram_dist/address-edit/index.wxss +1 -0
- package/miniprogram_dist/address-list/index.js +57 -0
- package/miniprogram_dist/address-list/index.json +4 -0
- package/miniprogram_dist/address-list/index.wxml +37 -0
- package/miniprogram_dist/address-list/index.wxss +1 -0
- package/miniprogram_dist/aside/index.js +17 -0
- package/miniprogram_dist/aside/index.json +4 -0
- package/miniprogram_dist/aside/index.wxml +5 -0
- package/miniprogram_dist/aside/index.wxss +1 -0
- package/miniprogram_dist/avatar/index.js +35 -0
- package/miniprogram_dist/avatar/index.json +4 -0
- package/miniprogram_dist/avatar/index.wxml +13 -0
- package/miniprogram_dist/avatar/index.wxss +1 -0
- package/miniprogram_dist/back-top/index.js +38 -0
- package/miniprogram_dist/back-top/index.json +7 -0
- package/miniprogram_dist/back-top/index.wxml +5 -0
- package/miniprogram_dist/back-top/index.wxss +1 -0
- package/miniprogram_dist/badge/index.js +35 -0
- package/miniprogram_dist/badge/index.json +4 -0
- package/miniprogram_dist/badge/index.wxml +9 -0
- package/miniprogram_dist/badge/index.wxss +1 -0
- package/miniprogram_dist/button/index.js +39 -0
- package/miniprogram_dist/button/index.json +4 -0
- package/miniprogram_dist/button/index.wxml +5 -0
- package/miniprogram_dist/button/index.wxss +1 -0
- package/miniprogram_dist/captcha/index.js +37 -0
- package/miniprogram_dist/captcha/index.json +8 -0
- package/miniprogram_dist/captcha/index.wxml +38 -0
- package/miniprogram_dist/captcha/index.wxss +1 -0
- package/miniprogram_dist/card/index.js +30 -0
- package/miniprogram_dist/card/index.json +4 -0
- package/miniprogram_dist/card/index.wxml +27 -0
- package/miniprogram_dist/card/index.wxss +1 -0
- package/miniprogram_dist/category-menu/index.js +42 -0
- package/miniprogram_dist/category-menu/index.json +4 -0
- package/miniprogram_dist/category-menu/index.wxml +23 -0
- package/miniprogram_dist/category-menu/index.wxss +1 -0
- package/miniprogram_dist/cell/index.js +48 -0
- package/miniprogram_dist/cell/index.json +7 -0
- package/miniprogram_dist/cell/index.wxml +35 -0
- package/miniprogram_dist/cell/index.wxss +1 -0
- package/miniprogram_dist/cell-group/index.js +13 -0
- package/miniprogram_dist/cell-group/index.json +4 -0
- package/miniprogram_dist/cell-group/index.wxml +9 -0
- package/miniprogram_dist/cell-group/index.wxss +1 -0
- package/miniprogram_dist/checkbox/index.js +50 -0
- package/miniprogram_dist/checkbox/index.json +4 -0
- package/miniprogram_dist/checkbox/index.wxml +17 -0
- package/miniprogram_dist/checkbox/index.wxss +1 -0
- package/miniprogram_dist/circle-progress/index.js +52 -0
- package/miniprogram_dist/circle-progress/index.json +4 -0
- package/miniprogram_dist/circle-progress/index.wxml +13 -0
- package/miniprogram_dist/circle-progress/index.wxss +1 -0
- package/miniprogram_dist/collapse/index.js +31 -0
- package/miniprogram_dist/collapse/index.json +4 -0
- package/miniprogram_dist/collapse/index.wxml +5 -0
- package/miniprogram_dist/collapse/index.wxss +1 -0
- package/miniprogram_dist/collapse-item/index.js +42 -0
- package/miniprogram_dist/collapse-item/index.json +7 -0
- package/miniprogram_dist/collapse-item/index.wxml +18 -0
- package/miniprogram_dist/collapse-item/index.wxss +1 -0
- package/miniprogram_dist/common/runtime.js +234 -0
- package/miniprogram_dist/container/index.js +18 -0
- package/miniprogram_dist/container/index.json +4 -0
- package/miniprogram_dist/container/index.wxml +5 -0
- package/miniprogram_dist/container/index.wxss +1 -0
- package/miniprogram_dist/count-down/index.js +58 -0
- package/miniprogram_dist/count-down/index.json +4 -0
- package/miniprogram_dist/count-down/index.wxml +14 -0
- package/miniprogram_dist/count-down/index.wxss +1 -0
- package/miniprogram_dist/count-up/index.js +56 -0
- package/miniprogram_dist/count-up/index.json +4 -0
- package/miniprogram_dist/count-up/index.wxml +2 -0
- package/miniprogram_dist/count-up/index.wxss +1 -0
- package/miniprogram_dist/date-time-picker/index.js +134 -0
- package/miniprogram_dist/date-time-picker/index.json +4 -0
- package/miniprogram_dist/date-time-picker/index.wxml +77 -0
- package/miniprogram_dist/date-time-picker/index.wxss +1 -0
- package/miniprogram_dist/divider/index.js +22 -0
- package/miniprogram_dist/divider/index.json +4 -0
- package/miniprogram_dist/divider/index.wxml +13 -0
- package/miniprogram_dist/divider/index.wxss +1 -0
- package/miniprogram_dist/drop-down-menu/index.js +33 -0
- package/miniprogram_dist/drop-down-menu/index.json +7 -0
- package/miniprogram_dist/drop-down-menu/index.wxml +19 -0
- package/miniprogram_dist/drop-down-menu/index.wxss +1 -0
- package/miniprogram_dist/empty/index.js +21 -0
- package/miniprogram_dist/empty/index.json +7 -0
- package/miniprogram_dist/empty/index.wxml +17 -0
- package/miniprogram_dist/empty/index.wxss +1 -0
- package/miniprogram_dist/fixed-view/index.js +36 -0
- package/miniprogram_dist/fixed-view/index.json +4 -0
- package/miniprogram_dist/fixed-view/index.wxml +9 -0
- package/miniprogram_dist/fixed-view/index.wxss +1 -0
- package/miniprogram_dist/flex/index.js +31 -0
- package/miniprogram_dist/flex/index.json +4 -0
- package/miniprogram_dist/flex/index.wxml +5 -0
- package/miniprogram_dist/flex/index.wxss +1 -0
- package/miniprogram_dist/float-button/index.js +35 -0
- package/miniprogram_dist/float-button/index.json +7 -0
- package/miniprogram_dist/float-button/index.wxml +8 -0
- package/miniprogram_dist/float-button/index.wxss +1 -0
- package/miniprogram_dist/footer/index.js +17 -0
- package/miniprogram_dist/footer/index.json +4 -0
- package/miniprogram_dist/footer/index.wxml +5 -0
- package/miniprogram_dist/footer/index.wxss +1 -0
- package/miniprogram_dist/form/index.js +41 -0
- package/miniprogram_dist/form/index.json +4 -0
- package/miniprogram_dist/form/index.wxml +5 -0
- package/miniprogram_dist/form/index.wxss +1 -0
- package/miniprogram_dist/form-item/index.js +30 -0
- package/miniprogram_dist/form-item/index.json +4 -0
- package/miniprogram_dist/form-item/index.wxml +20 -0
- package/miniprogram_dist/form-item/index.wxss +1 -0
- package/miniprogram_dist/grid/index.js +22 -0
- package/miniprogram_dist/grid/index.json +4 -0
- package/miniprogram_dist/grid/index.wxml +5 -0
- package/miniprogram_dist/grid/index.wxss +1 -0
- package/miniprogram_dist/grid-item/index.js +41 -0
- package/miniprogram_dist/grid-item/index.json +7 -0
- package/miniprogram_dist/grid-item/index.wxml +21 -0
- package/miniprogram_dist/grid-item/index.wxss +1 -0
- package/miniprogram_dist/guide/index.js +93 -0
- package/miniprogram_dist/guide/index.json +4 -0
- package/miniprogram_dist/guide/index.wxml +28 -0
- package/miniprogram_dist/guide/index.wxss +1 -0
- package/miniprogram_dist/header/index.js +17 -0
- package/miniprogram_dist/header/index.json +4 -0
- package/miniprogram_dist/header/index.wxml +5 -0
- package/miniprogram_dist/header/index.wxss +1 -0
- package/miniprogram_dist/highlight/index.js +42 -0
- package/miniprogram_dist/highlight/index.json +4 -0
- package/miniprogram_dist/highlight/index.wxml +10 -0
- package/miniprogram_dist/highlight/index.wxss +1 -0
- package/miniprogram_dist/icon/index.js +26 -0
- package/miniprogram_dist/icon/index.json +4 -0
- package/miniprogram_dist/icon/index.wxml +5 -0
- package/miniprogram_dist/icon/index.wxss +1 -0
- package/miniprogram_dist/image/index.js +51 -0
- package/miniprogram_dist/image/index.json +4 -0
- package/miniprogram_dist/image/index.wxml +13 -0
- package/miniprogram_dist/image/index.wxss +1 -0
- package/miniprogram_dist/input/index.js +121 -0
- package/miniprogram_dist/input/index.json +7 -0
- package/miniprogram_dist/input/index.wxml +35 -0
- package/miniprogram_dist/input/index.wxss +1 -0
- package/miniprogram_dist/input-number/index.js +71 -0
- package/miniprogram_dist/input-number/index.json +7 -0
- package/miniprogram_dist/input-number/index.wxml +9 -0
- package/miniprogram_dist/input-number/index.wxss +1 -0
- package/miniprogram_dist/keyboard/index.js +84 -0
- package/miniprogram_dist/keyboard/index.json +7 -0
- package/miniprogram_dist/keyboard/index.wxml +27 -0
- package/miniprogram_dist/keyboard/index.wxss +1 -0
- package/miniprogram_dist/lazy-image/index.js +53 -0
- package/miniprogram_dist/lazy-image/index.json +4 -0
- package/miniprogram_dist/lazy-image/index.wxml +16 -0
- package/miniprogram_dist/lazy-image/index.wxss +1 -0
- package/miniprogram_dist/line-progress/index.js +45 -0
- package/miniprogram_dist/line-progress/index.json +4 -0
- package/miniprogram_dist/line-progress/index.wxml +14 -0
- package/miniprogram_dist/line-progress/index.wxss +1 -0
- package/miniprogram_dist/load-more/index.js +23 -0
- package/miniprogram_dist/load-more/index.json +7 -0
- package/miniprogram_dist/load-more/index.wxml +21 -0
- package/miniprogram_dist/load-more/index.wxss +1 -0
- package/miniprogram_dist/loading/index.js +28 -0
- package/miniprogram_dist/loading/index.json +4 -0
- package/miniprogram_dist/loading/index.wxml +12 -0
- package/miniprogram_dist/loading/index.wxss +1 -0
- package/miniprogram_dist/main/index.js +63 -0
- package/miniprogram_dist/main/index.json +4 -0
- package/miniprogram_dist/main/index.wxml +5 -0
- package/miniprogram_dist/main/index.wxss +1 -0
- package/miniprogram_dist/navbar/index.js +37 -0
- package/miniprogram_dist/navbar/index.json +7 -0
- package/miniprogram_dist/navbar/index.wxml +23 -0
- package/miniprogram_dist/navbar/index.wxss +1 -0
- package/miniprogram_dist/notice-bar/index.js +79 -0
- package/miniprogram_dist/notice-bar/index.json +7 -0
- package/miniprogram_dist/notice-bar/index.wxml +18 -0
- package/miniprogram_dist/notice-bar/index.wxss +1 -0
- package/miniprogram_dist/page/index.js +14 -0
- package/miniprogram_dist/page/index.json +4 -0
- package/miniprogram_dist/page/index.wxml +7 -0
- package/miniprogram_dist/page/index.wxss +0 -0
- package/miniprogram_dist/pin-input/index.js +32 -0
- package/miniprogram_dist/pin-input/index.json +4 -0
- package/miniprogram_dist/pin-input/index.wxml +5 -0
- package/miniprogram_dist/pin-input/index.wxss +1 -0
- package/miniprogram_dist/popup/index.js +60 -0
- package/miniprogram_dist/popup/index.json +4 -0
- package/miniprogram_dist/popup/index.wxml +9 -0
- package/miniprogram_dist/popup/index.wxss +1 -0
- package/miniprogram_dist/pull-refresh/index.js +56 -0
- package/miniprogram_dist/pull-refresh/index.json +4 -0
- package/miniprogram_dist/pull-refresh/index.wxml +10 -0
- package/miniprogram_dist/pull-refresh/index.wxss +1 -0
- package/miniprogram_dist/radio/index.js +35 -0
- package/miniprogram_dist/radio/index.json +4 -0
- package/miniprogram_dist/radio/index.wxml +9 -0
- package/miniprogram_dist/radio/index.wxss +1 -0
- package/miniprogram_dist/radio-group/index.js +14 -0
- package/miniprogram_dist/radio-group/index.json +4 -0
- package/miniprogram_dist/radio-group/index.wxml +5 -0
- package/miniprogram_dist/radio-group/index.wxss +1 -0
- package/miniprogram_dist/rate/index.js +88 -0
- package/miniprogram_dist/rate/index.json +4 -0
- package/miniprogram_dist/rate/index.wxml +16 -0
- package/miniprogram_dist/rate/index.wxss +1 -0
- package/miniprogram_dist/safe-area/index.js +14 -0
- package/miniprogram_dist/safe-area/index.json +4 -0
- package/miniprogram_dist/safe-area/index.wxml +5 -0
- package/miniprogram_dist/safe-area/index.wxss +1 -0
- package/miniprogram_dist/scroll-list/index.js +54 -0
- package/miniprogram_dist/scroll-list/index.json +4 -0
- package/miniprogram_dist/scroll-list/index.wxml +13 -0
- package/miniprogram_dist/scroll-list/index.wxss +1 -0
- package/miniprogram_dist/search/index.js +59 -0
- package/miniprogram_dist/search/index.json +7 -0
- package/miniprogram_dist/search/index.wxml +17 -0
- package/miniprogram_dist/search/index.wxss +1 -0
- package/miniprogram_dist/share-panel/index.js +70 -0
- package/miniprogram_dist/share-panel/index.json +7 -0
- package/miniprogram_dist/share-panel/index.wxml +25 -0
- package/miniprogram_dist/share-panel/index.wxss +1 -0
- package/miniprogram_dist/skeleton/index.js +27 -0
- package/miniprogram_dist/skeleton/index.json +4 -0
- package/miniprogram_dist/skeleton/index.wxml +30 -0
- package/miniprogram_dist/skeleton/index.wxss +1 -0
- package/miniprogram_dist/slider/index.js +78 -0
- package/miniprogram_dist/slider/index.json +4 -0
- package/miniprogram_dist/slider/index.wxml +13 -0
- package/miniprogram_dist/slider/index.wxss +1 -0
- package/miniprogram_dist/steps/index.js +19 -0
- package/miniprogram_dist/steps/index.json +7 -0
- package/miniprogram_dist/steps/index.wxml +27 -0
- package/miniprogram_dist/steps/index.wxss +1 -0
- package/miniprogram_dist/sticky/index.js +18 -0
- package/miniprogram_dist/sticky/index.json +4 -0
- package/miniprogram_dist/sticky/index.wxml +5 -0
- package/miniprogram_dist/sticky/index.wxss +0 -0
- package/miniprogram_dist/swipe-action/index.js +38 -0
- package/miniprogram_dist/swipe-action/index.json +4 -0
- package/miniprogram_dist/swipe-action/index.wxml +14 -0
- package/miniprogram_dist/swipe-action/index.wxss +1 -0
- package/miniprogram_dist/switch/index.js +86 -0
- package/miniprogram_dist/switch/index.json +7 -0
- package/miniprogram_dist/switch/index.wxml +31 -0
- package/miniprogram_dist/switch/index.wxss +1 -0
- package/miniprogram_dist/tabbar/index.js +41 -0
- package/miniprogram_dist/tabbar/index.json +4 -0
- package/miniprogram_dist/tabbar/index.wxml +5 -0
- package/miniprogram_dist/tabbar/index.wxss +1 -0
- package/miniprogram_dist/tabbar-item/index.js +47 -0
- package/miniprogram_dist/tabbar-item/index.json +8 -0
- package/miniprogram_dist/tabbar-item/index.wxml +18 -0
- package/miniprogram_dist/tabbar-item/index.wxss +1 -0
- package/miniprogram_dist/tabs/index.js +54 -0
- package/miniprogram_dist/tabs/index.json +4 -0
- package/miniprogram_dist/tabs/index.wxml +17 -0
- package/miniprogram_dist/tabs/index.wxss +1 -0
- package/miniprogram_dist/tag/index.js +22 -0
- package/miniprogram_dist/tag/index.json +4 -0
- package/miniprogram_dist/tag/index.wxml +5 -0
- package/miniprogram_dist/tag/index.wxss +1 -0
- package/miniprogram_dist/text/index.js +56 -0
- package/miniprogram_dist/text/index.json +4 -0
- package/miniprogram_dist/text/index.wxml +5 -0
- package/miniprogram_dist/text/index.wxss +1 -0
- package/miniprogram_dist/textarea/index.js +60 -0
- package/miniprogram_dist/textarea/index.json +4 -0
- package/miniprogram_dist/textarea/index.wxml +8 -0
- package/miniprogram_dist/textarea/index.wxss +1 -0
- package/miniprogram_dist/toast/index.js +46 -0
- package/miniprogram_dist/toast/index.json +8 -0
- package/miniprogram_dist/toast/index.wxml +16 -0
- package/miniprogram_dist/toast/index.wxss +1 -0
- package/miniprogram_dist/upload/index.js +79 -0
- package/miniprogram_dist/upload/index.json +7 -0
- package/miniprogram_dist/upload/index.wxml +38 -0
- package/miniprogram_dist/upload/index.wxss +1 -0
- package/package.json +16 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// import from 'svelte/transition'
|
|
2
|
+
const { createReactiveProxy, batchSetData } = require('../common/runtime');
|
|
3
|
+
|
|
4
|
+
Component({
|
|
5
|
+
properties: {
|
|
6
|
+
visible: {
|
|
7
|
+
type: Boolean,
|
|
8
|
+
value: false,
|
|
9
|
+
},
|
|
10
|
+
title: {
|
|
11
|
+
type: String,
|
|
12
|
+
value: '',
|
|
13
|
+
},
|
|
14
|
+
extraKey: {
|
|
15
|
+
type: String,
|
|
16
|
+
value: '',
|
|
17
|
+
},
|
|
18
|
+
showDot: {
|
|
19
|
+
type: Boolean,
|
|
20
|
+
value: true,
|
|
21
|
+
},
|
|
22
|
+
oninput: {
|
|
23
|
+
type: null,
|
|
24
|
+
},
|
|
25
|
+
ondelete: {
|
|
26
|
+
type: null,
|
|
27
|
+
},
|
|
28
|
+
onconfirm: {
|
|
29
|
+
type: null,
|
|
30
|
+
},
|
|
31
|
+
onclose: {
|
|
32
|
+
type: null,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
lifetimes: {
|
|
37
|
+
attached() {
|
|
38
|
+
const self = this;
|
|
39
|
+
// $bindable: visible
|
|
40
|
+
this.__bind_visible = function(e) {
|
|
41
|
+
self.setData({ visible: e.detail.value });
|
|
42
|
+
self.triggerEvent('update:visible', e.detail.value);
|
|
43
|
+
};
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
methods: {
|
|
48
|
+
close(e) {
|
|
49
|
+
// 用户定义的处理函数
|
|
50
|
+
},
|
|
51
|
+
close(e) {
|
|
52
|
+
// 用户定义的处理函数
|
|
53
|
+
},
|
|
54
|
+
vibrate(e) {
|
|
55
|
+
// 用户定义的处理函数
|
|
56
|
+
},
|
|
57
|
+
__handler_click(e) {
|
|
58
|
+
(() => handleKey(key)).call(this, e);
|
|
59
|
+
},
|
|
60
|
+
vibrate(e) {
|
|
61
|
+
// 用户定义的处理函数
|
|
62
|
+
},
|
|
63
|
+
__handler_click(e) {
|
|
64
|
+
(() => { if (extraKey) handleKey(extraKey); else if (showDot) handleKey('.'); }).call(this, e);
|
|
65
|
+
},
|
|
66
|
+
vibrate(e) {
|
|
67
|
+
// 用户定义的处理函数
|
|
68
|
+
},
|
|
69
|
+
__handler_click(e) {
|
|
70
|
+
(() => handleKey('0')).call(this, e);
|
|
71
|
+
},
|
|
72
|
+
vibrate(e) {
|
|
73
|
+
// 用户定义的处理函数
|
|
74
|
+
},
|
|
75
|
+
handleDelete(e) {
|
|
76
|
+
// 用户定义的处理函数
|
|
77
|
+
},
|
|
78
|
+
__bind_visible(e) {
|
|
79
|
+
this.setData({ visible: e.detail.value });
|
|
80
|
+
this.triggerEvent('update:visible', e.detail.value);
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<block wx:if="{{visible}}">
|
|
2
|
+
<view class="ln-overlay ln-overlay--transparent" role="presentation" bindtap="close">
|
|
3
|
+
</view>
|
|
4
|
+
<view class="ln-keyboard">
|
|
5
|
+
<block wx:if="{{title}}">
|
|
6
|
+
<view class="ln-keyboard__header">
|
|
7
|
+
<text class="ln-keyboard__title">
|
|
8
|
+
{{title}} </text>
|
|
9
|
+
<button type="button" class="ln-keyboard__close" bindtap="close">
|
|
10
|
+
完成 </button>
|
|
11
|
+
</view>
|
|
12
|
+
{{/if}} <view class="ln-keyboard__body">
|
|
13
|
+
<block wx:for="{{keys}}" wx:for-item="key">
|
|
14
|
+
<button type="button" class="ln-keyboard__key" bindtouchstart="vibrate" bindtap="__handler_1">
|
|
15
|
+
{{key}} </button>
|
|
16
|
+
</block>
|
|
17
|
+
<button type="button" class="ln-keyboard__key ln-keyboard__key--extra" bindtouchstart="vibrate" bindtap="__handler_2">
|
|
18
|
+
{{extraKey || (showDot ? '.' : '')}} </button>
|
|
19
|
+
<button type="button" class="ln-keyboard__key" bindtouchstart="vibrate" bindtap="__handler_3">
|
|
20
|
+
0 </button>
|
|
21
|
+
<button type="button" class="ln-keyboard__key ln-keyboard__key--delete" bindtouchstart="vibrate" bindtap="handleDelete">
|
|
22
|
+
<icon icon="{{Delete}}" size="{{22}}" />
|
|
23
|
+
</button>
|
|
24
|
+
</view>
|
|
25
|
+
</block>
|
|
26
|
+
</view>
|
|
27
|
+
{{/if}}</block>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ln-overlay--transparent{background:rgba(0,0,0,0)}.ln-keyboard{position:fixed;bottom:0;left:0;right:0;z-index:2001;background:#f0f2f5;padding-bottom:env(safe-area-inset-bottom)}.ln-keyboard__header{display:flex;align-items:center;justify-content:space-between;padding:16rpx 32rpx;background:#fff;border-bottom:none}.ln-keyboard__title{font-size:28rpx;color:#303133}.ln-keyboard__close{border:none;background:none;color:#0062ff;font-size:28rpx;cursor:pointer}.ln-keyboard__body{display:grid;grid-template-columns:repeat(3, 1fr);gap:12rpx;padding:12rpx}.ln-keyboard__key{height:96rpx;display:flex;align-items:center;justify-content:center;font-size:40rpx;font-weight:500;background:#fff;color:#303133;border:none;border-radius:12rpx;cursor:pointer}.ln-keyboard__key:active{background:#e4e7ed}.ln-keyboard__key--extra{background:rgba(0,0,0,0);font-size:32rpx;color:#909399}.ln-keyboard__key--delete{background:rgba(0,0,0,0);color:#909399}.dark .ln-keyboard{background:#141415}.dark .ln-keyboard .ln-keyboard__header{background:#1d1e1f}.dark .ln-keyboard .ln-keyboard__title{color:#e5eaf3}.dark .ln-keyboard .ln-keyboard__close{color:#0062ff}.dark .ln-keyboard .ln-keyboard__key{background:#2c2d2e;color:#e5eaf3}.dark .ln-keyboard .ln-keyboard__key:active{background:#363637}.dark .ln-keyboard .ln-keyboard__key--extra,.dark .ln-keyboard .ln-keyboard__key--delete{color:#a3a6ad}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// import from 'svelte'
|
|
2
|
+
const { createReactiveProxy, batchSetData } = require('../common/runtime');
|
|
3
|
+
|
|
4
|
+
Component({
|
|
5
|
+
properties: {
|
|
6
|
+
src: {
|
|
7
|
+
type: null,
|
|
8
|
+
},
|
|
9
|
+
alt: {
|
|
10
|
+
type: String,
|
|
11
|
+
value: '',
|
|
12
|
+
},
|
|
13
|
+
width: {
|
|
14
|
+
type: String,
|
|
15
|
+
value: '100%',
|
|
16
|
+
},
|
|
17
|
+
height: {
|
|
18
|
+
type: null,
|
|
19
|
+
},
|
|
20
|
+
round: {
|
|
21
|
+
type: Boolean,
|
|
22
|
+
value: false,
|
|
23
|
+
},
|
|
24
|
+
fit: {
|
|
25
|
+
type: String,
|
|
26
|
+
value: 'cover',
|
|
27
|
+
},
|
|
28
|
+
threshold: {
|
|
29
|
+
type: Number,
|
|
30
|
+
value: 100,
|
|
31
|
+
},
|
|
32
|
+
placeholderSrc: {
|
|
33
|
+
type: String,
|
|
34
|
+
value: '',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
data: {
|
|
39
|
+
loaded: false,
|
|
40
|
+
inView: false,
|
|
41
|
+
error: false,
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
methods: {
|
|
45
|
+
__handler_load(e) {
|
|
46
|
+
(() => loaded = true).call(this, e);
|
|
47
|
+
},
|
|
48
|
+
__handler_error(e) {
|
|
49
|
+
(() => error = true).call(this, e);
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<view class="ln-lazy-image" this="{{el}}" bindchange="__bind_el" class="{{round? 'is-round' : ''}}" style="width: {{width}}" style="height: {{height}}">
|
|
2
|
+
<block wx:if="{{inView && !error}}">
|
|
3
|
+
<image class="ln-lazy-image__inner" src="{{src}}" alt="{{alt}}" style="object-fit: {{fit}}" bindload="__handler_1" binderror="__handler_2" />
|
|
4
|
+
</block>
|
|
5
|
+
<block wx:elif="{{placeholderSrc && !error}}">
|
|
6
|
+
<image class="ln-lazy-image__placeholder" src="{{placeholderSrc}}" alt="" style="object-fit: {{fit}}" />
|
|
7
|
+
{{/if}} <block wx:if="{{error}}">
|
|
8
|
+
<view class="ln-lazy-image__error">
|
|
9
|
+
加载失败 </view>
|
|
10
|
+
</block>
|
|
11
|
+
<block wx:elif="{{!loaded}}">
|
|
12
|
+
<view class="ln-lazy-image__loading">
|
|
13
|
+
</view>
|
|
14
|
+
{{/if}} </block>
|
|
15
|
+
</block>
|
|
16
|
+
</view>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ln-lazy-image{position:relative;overflow:hidden;background:#f5f7fa}.ln-lazy-image.is-round{border-radius:12rpx}.ln-lazy-image__inner{width:100%;height:100%;display:block}.ln-lazy-image__placeholder{width:100%;height:100%}.ln-lazy-image__loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#f5f7fa}.ln-lazy-image__error{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#909399;font-size:26rpx;background:#f5f7fa}.dark .ln-lazy-image{background:#2c2d2e}.dark .ln-lazy-image .ln-lazy-image__loading{background:#2c2d2e}.dark .ln-lazy-image .ln-lazy-image__error{background:#2c2d2e;color:#a3a6ad}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const { createReactiveProxy, batchSetData } = require('../common/runtime');
|
|
2
|
+
|
|
3
|
+
Component({
|
|
4
|
+
properties: {
|
|
5
|
+
percentage: {
|
|
6
|
+
type: Number,
|
|
7
|
+
value: 0,
|
|
8
|
+
},
|
|
9
|
+
strokeWidth: {
|
|
10
|
+
type: Number,
|
|
11
|
+
value: 6,
|
|
12
|
+
},
|
|
13
|
+
color: {
|
|
14
|
+
type: String,
|
|
15
|
+
value: '',
|
|
16
|
+
},
|
|
17
|
+
trackColor: {
|
|
18
|
+
type: String,
|
|
19
|
+
value: '',
|
|
20
|
+
},
|
|
21
|
+
showText: {
|
|
22
|
+
type: Boolean,
|
|
23
|
+
value: true,
|
|
24
|
+
},
|
|
25
|
+
textInside: {
|
|
26
|
+
type: Boolean,
|
|
27
|
+
value: false,
|
|
28
|
+
},
|
|
29
|
+
status: {
|
|
30
|
+
type: String,
|
|
31
|
+
value: '',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
data: {
|
|
36
|
+
pct: undefined,
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
observers: {
|
|
40
|
+
'percentage': function() {
|
|
41
|
+
this.setData({ pct: Math.min(100, Math.max(0, percentage)) });
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<view class="ln-line-progress {status ? `ln-line-progress--${status}` : ''}">
|
|
2
|
+
<view class="ln-line-progress__bar" style="{trackColor ? `background:${trackColor};` : ''}height:{strokeWidth}px">
|
|
3
|
+
<view class="ln-line-progress__inner" style="width:{pct}%;{color ? `background:${color}` : ''}">
|
|
4
|
+
<block wx:if="{{showText && textInside}}">
|
|
5
|
+
<text class="ln-line-progress__text">
|
|
6
|
+
{{pct}}% </text>
|
|
7
|
+
{{/if}} </block>
|
|
8
|
+
</view>
|
|
9
|
+
</view>
|
|
10
|
+
<block wx:if="{{showText && !textInside}}">
|
|
11
|
+
<text class="ln-line-progress__text">
|
|
12
|
+
{{pct}}% </text>
|
|
13
|
+
{{/if}} </block>
|
|
14
|
+
</view>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ln-line-progress{display:flex;align-items:center;width:100%}.ln-line-progress__bar{flex:1;border-radius:19998rpx;background-color:#ebeef5;overflow:hidden}.ln-line-progress__inner{height:100%;border-radius:19998rpx;background-color:#0062ff;transition:width .3s ease;display:flex;align-items:center;justify-content:flex-end}.ln-line-progress__text{flex-shrink:0;margin-left:16rpx;font-size:26rpx;color:#909399;min-width:72rpx;text-align:right}.ln-line-progress .ln-line-progress__inner>.ln-line-progress__text{margin:0 8rpx;font-size:24rpx;color:#fff}.ln-line-progress--success .ln-line-progress__inner{background-color:#31c27c}.ln-line-progress--warning .ln-line-progress__inner{background-color:#ff974a}.ln-line-progress--danger .ln-line-progress__inner{background-color:#fc5a5a}.dark .ln-line-progress .ln-line-progress__bar{background-color:#2c2d2e}.dark .ln-line-progress .ln-line-progress__text{color:#a3a6ad}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const { createReactiveProxy, batchSetData } = require('../common/runtime');
|
|
2
|
+
|
|
3
|
+
Component({
|
|
4
|
+
properties: {
|
|
5
|
+
status: {
|
|
6
|
+
type: String,
|
|
7
|
+
value: 'more',
|
|
8
|
+
},
|
|
9
|
+
loadingText: {
|
|
10
|
+
type: String,
|
|
11
|
+
value: '加载中...',
|
|
12
|
+
},
|
|
13
|
+
nomoreText: {
|
|
14
|
+
type: String,
|
|
15
|
+
value: '没有更多了',
|
|
16
|
+
},
|
|
17
|
+
moreText: {
|
|
18
|
+
type: String,
|
|
19
|
+
value: '加载更多',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<view class="ln-load-more">
|
|
2
|
+
<block wx:if="{{status === 'loading'}}">
|
|
3
|
+
<text class="ln-load-more__icon">
|
|
4
|
+
<loading size="small" />
|
|
5
|
+
</text>
|
|
6
|
+
<text class="ln-load-more__text">
|
|
7
|
+
{{loadingText}} </text>
|
|
8
|
+
</block>
|
|
9
|
+
<block wx:elif="{{status === 'nomore'}}">
|
|
10
|
+
<text class="ln-load-more__line">
|
|
11
|
+
</text>
|
|
12
|
+
<text class="ln-load-more__text">
|
|
13
|
+
{{nomoreText}} </text>
|
|
14
|
+
<text class="ln-load-more__line">
|
|
15
|
+
</text>
|
|
16
|
+
</block>
|
|
17
|
+
<block wx:else>
|
|
18
|
+
<text class="ln-load-more__text">
|
|
19
|
+
{{moreText}} </text>
|
|
20
|
+
</block>
|
|
21
|
+
</view>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ln-load-more{display:flex;align-items:center;justify-content:center;gap:16rpx;padding:32rpx 0}.ln-load-more__text{font-size:26rpx;color:#909399}.ln-load-more__icon{display:inline-flex;align-items:center;color:#0062ff;animation:ln-load-more-spin 1s linear infinite}.ln-load-more__line{flex:0 0 64rpx;height:1px;background-color:#ebeef5}.dark .ln-load-more .ln-load-more__text{color:#a3a6ad}.dark .ln-load-more .ln-load-more__icon{color:#0062ff}.dark .ln-load-more .ln-load-more__icon .ln-icon{color:#0062ff}.dark .ln-load-more .ln-load-more__line{background-color:hsla(0,0%,100%,.08)}@keyframes ln-load-more-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const { createReactiveProxy, batchSetData } = require('../common/runtime');
|
|
2
|
+
|
|
3
|
+
Component({
|
|
4
|
+
properties: {
|
|
5
|
+
size: {
|
|
6
|
+
type: String,
|
|
7
|
+
value: 'default',
|
|
8
|
+
},
|
|
9
|
+
text: {
|
|
10
|
+
type: null,
|
|
11
|
+
},
|
|
12
|
+
fullscreen: {
|
|
13
|
+
type: Boolean,
|
|
14
|
+
value: false,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
data: {
|
|
19
|
+
px: undefined,
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
observers: {
|
|
23
|
+
'size': function() {
|
|
24
|
+
this.setData({ px: size === 'small' ? 20 : size === 'large' ? 40 : 30 });
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<view class="ln-loading" class="{{size === 'small'? 'ln-loading--small' : ''}}" class="{{size === 'large'? 'ln-loading--large' : ''}}" class="{{fullscreen? 'is-fullscreen' : ''}}">
|
|
2
|
+
<svg class="ln-loading__spinner" width="{{px}}" height="{{px}}" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<circle cx="12" cy="12" r="9" stroke="currentColor" stroke-opacity="0.2" stroke-width="2.5" />
|
|
4
|
+
<path d="M12 3a9 9 0 0 1 9 9" stroke="currentColor" stroke-width="2.5" stroke-linecap="round">
|
|
5
|
+
<animateTransform attributeName="transform" type="rotate" from="0 12 12" to="360 12 12" dur="0.8s" repeatCount="indefinite" />
|
|
6
|
+
</path>
|
|
7
|
+
</svg>
|
|
8
|
+
<block wx:if="{{text}}">
|
|
9
|
+
<text class="ln-loading__text">
|
|
10
|
+
{{text}} </text>
|
|
11
|
+
{{/if}} </block>
|
|
12
|
+
</view>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ln-loading{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;color:#0062ff}.ln-loading__spinner{display:block;flex-shrink:0}.ln-loading__text{margin-top:16rpx;font-size:26rpx;color:#909399}.ln-loading.is-fullscreen{position:fixed;inset:0;background-color:rgba(0,0,0,.3);z-index:2001}.dark .ln-loading .ln-loading__text{color:#a3a6ad}.dark .ln-loading.is-fullscreen{background-color:rgba(0,0,0,.5)}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// import from 'svelte'
|
|
2
|
+
const { createReactiveProxy, batchSetData } = require('../common/runtime');
|
|
3
|
+
|
|
4
|
+
Component({
|
|
5
|
+
properties: {
|
|
6
|
+
class: className: {
|
|
7
|
+
type: null,
|
|
8
|
+
value: "",
|
|
9
|
+
},
|
|
10
|
+
key: {
|
|
11
|
+
type: String,
|
|
12
|
+
value: "",
|
|
13
|
+
},
|
|
14
|
+
direction: {
|
|
15
|
+
type: String,
|
|
16
|
+
value: "forward",
|
|
17
|
+
},
|
|
18
|
+
animate: {
|
|
19
|
+
type: Boolean,
|
|
20
|
+
value: true,
|
|
21
|
+
},
|
|
22
|
+
children: {
|
|
23
|
+
type: null,
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
data: {
|
|
28
|
+
mainEl: undefined,
|
|
29
|
+
prevKey: '',
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
lifetimes: {
|
|
33
|
+
attached() {
|
|
34
|
+
const self = this;
|
|
35
|
+
// $effect #1
|
|
36
|
+
const currentKey = key;
|
|
37
|
+
const prev = untrack(() => prevKey);
|
|
38
|
+
if (currentKey === prev || !mainEl) { prevKey = currentKey; return; }
|
|
39
|
+
prevKey = currentKey;
|
|
40
|
+
|
|
41
|
+
if (!animate) {
|
|
42
|
+
requestAnimationFrame(() =>
|
|
43
|
+
mainEl?.dispatchEvent(new CustomEvent("routeready")),
|
|
44
|
+
);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const cls =
|
|
49
|
+
direction === "back" ? "ln-main--slide-left" : "ln-main--slide-right";
|
|
50
|
+
mainEl.classList.add(cls);
|
|
51
|
+
const onEnd = () => {
|
|
52
|
+
mainEl?.classList.remove(cls);
|
|
53
|
+
mainEl?.removeEventListener("animationend", onEnd);
|
|
54
|
+
// 动画结束后等一帧确保布局稳定再通知恢复滚动
|
|
55
|
+
requestAnimationFrame(() =>
|
|
56
|
+
mainEl?.dispatchEvent(new CustomEvent("routeready")),
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
mainEl.addEventListener("animationend", onEnd);;
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ln-container{display:flex;flex-direction:column;box-sizing:border-box;min-height:100vh;min-height:100dvh;max-width:1500rpx;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;transition:background-color .3s,color .3s}.dark .ln-container{background-color:#141415;color:#e5eaf3}.ln-header{position:fixed;top:0;left:0;right:0;max-width:1500rpx;margin:0 auto;flex-shrink:0;z-index:100;background-color:#fff;will-change:transform;transform:translateZ(0)}.dark .ln-header{background-color:#1d1e1f}.ln-main{display:block;flex:1;box-sizing:border-box;min-width:0;overflow-x:clip;padding:32rpx;padding-top:120rpx;background-color:#f2f3f5}.dark .ln-main{background-color:#141415}.ln-main--slide-right{animation:ln-slide-right 300ms ease both}.ln-main--slide-left{animation:ln-slide-left 300ms ease both}@keyframes ln-slide-right{from{transform:translateX(120rpx)}to{transform:translateX(0)}}@keyframes ln-slide-left{from{transform:translateX(-120rpx)}to{transform:translateX(0)}}.ln-footer{display:flex;align-items:center;box-sizing:border-box;flex-shrink:0;height:100rpx;padding:0 32rpx;background-color:#fff;border-top:.10rpx solid #e4e7ed}.dark .ln-footer{background-color:#1d1e1f;border-top-color:hsla(0,0%,100%,.08);color:#e5eaf3}.ln-aside{display:flex;flex-direction:column;box-sizing:border-box;flex-shrink:0;width:var(--ln-aside-width, 400rpx);overflow:hidden;background-color:#fff;border-right:.10rpx solid #e4e7ed}.dark .ln-aside{background-color:#1d1e1f;border-right-color:hsla(0,0%,100%,.08);color:#e5eaf3}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const { createReactiveProxy, batchSetData } = require('../common/runtime');
|
|
2
|
+
|
|
3
|
+
Component({
|
|
4
|
+
properties: {
|
|
5
|
+
title: {
|
|
6
|
+
type: String,
|
|
7
|
+
value: '',
|
|
8
|
+
},
|
|
9
|
+
fixed: {
|
|
10
|
+
type: Boolean,
|
|
11
|
+
value: false,
|
|
12
|
+
},
|
|
13
|
+
bordered: {
|
|
14
|
+
type: Boolean,
|
|
15
|
+
value: true,
|
|
16
|
+
},
|
|
17
|
+
onback: {
|
|
18
|
+
type: null,
|
|
19
|
+
},
|
|
20
|
+
left: {
|
|
21
|
+
type: null,
|
|
22
|
+
},
|
|
23
|
+
right: {
|
|
24
|
+
type: null,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
methods: {
|
|
29
|
+
onback(e) {
|
|
30
|
+
// 用户定义的处理函数
|
|
31
|
+
},
|
|
32
|
+
__handler_keydown(e) {
|
|
33
|
+
((e: KeyboardEvent) => e.key === 'Enter' && onback?.()).call(this, e);
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<view class="ln-navbar" class="{{fixed? 'is-fixed' : ''}}" class="{{bordered? 'is-bordered' : ''}}">
|
|
2
|
+
<block wx:if="{{left || onback}}">
|
|
3
|
+
<view class="ln-navbar__left" role="button" tabindex="0" bindtap="onback" bindkeydown="__handler_1">
|
|
4
|
+
<block wx:if="{{left}}">
|
|
5
|
+
<slot name="left" />
|
|
6
|
+
</block>
|
|
7
|
+
<block wx:else>
|
|
8
|
+
<icon icon="{{ChevronLeft}}" size="{{24}}" />
|
|
9
|
+
</block>
|
|
10
|
+
</view>
|
|
11
|
+
</block>
|
|
12
|
+
<block wx:else>
|
|
13
|
+
<view class="ln-navbar__placeholder">
|
|
14
|
+
</view>
|
|
15
|
+
</block>
|
|
16
|
+
<view class="ln-navbar__title">
|
|
17
|
+
{{title}} </view>
|
|
18
|
+
<view class="ln-navbar__right">
|
|
19
|
+
<block wx:if="{{right}}">
|
|
20
|
+
<slot name="right" />
|
|
21
|
+
{{/if}} </block>
|
|
22
|
+
</view>
|
|
23
|
+
</view>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ln-navbar{position:relative;display:flex;align-items:center;height:88rpx;padding:0 32rpx;background-color:#fff}.ln-navbar__left{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:64rpx;height:64rpx;cursor:pointer;padding:0;border:none;background:none;color:#303133}.ln-navbar__placeholder{flex-shrink:0;width:64rpx}.ln-navbar__title{flex:1;text-align:center;font-size:28rpx;font-weight:500;color:#303133;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ln-navbar__right{display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;min-width:64rpx}.ln-navbar.is-fixed{position:fixed;top:0;left:0;right:0;z-index:100}.ln-navbar.is-bordered::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background-color:#e4e7ed;transform:scaleY(0.5)}.dark .ln-navbar{background-color:#1d1e1f}.dark .ln-navbar .ln-navbar__title{color:#e5eaf3}.dark .ln-navbar .ln-navbar__left{color:#e5eaf3}.dark .ln-navbar.is-bordered::after{background-color:hsla(0,0%,100%,.08)}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const { createReactiveProxy, batchSetData } = require('../common/runtime');
|
|
2
|
+
|
|
3
|
+
Component({
|
|
4
|
+
properties: {
|
|
5
|
+
text: {
|
|
6
|
+
type: String,
|
|
7
|
+
value: '',
|
|
8
|
+
},
|
|
9
|
+
type: {
|
|
10
|
+
type: String,
|
|
11
|
+
value: 'warning',
|
|
12
|
+
},
|
|
13
|
+
color: {
|
|
14
|
+
type: String,
|
|
15
|
+
value: '',
|
|
16
|
+
},
|
|
17
|
+
background: {
|
|
18
|
+
type: String,
|
|
19
|
+
value: '',
|
|
20
|
+
},
|
|
21
|
+
scrollable: {
|
|
22
|
+
type: Boolean,
|
|
23
|
+
value: true,
|
|
24
|
+
},
|
|
25
|
+
closeable: {
|
|
26
|
+
type: Boolean,
|
|
27
|
+
value: false,
|
|
28
|
+
},
|
|
29
|
+
showIcon: {
|
|
30
|
+
type: Boolean,
|
|
31
|
+
value: true,
|
|
32
|
+
},
|
|
33
|
+
speed: {
|
|
34
|
+
type: Number,
|
|
35
|
+
value: 60,
|
|
36
|
+
},
|
|
37
|
+
delay: {
|
|
38
|
+
type: Number,
|
|
39
|
+
value: 1,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
data: {
|
|
44
|
+
visible: true,
|
|
45
|
+
wrapWidth: 0,
|
|
46
|
+
contentWidth: 0,
|
|
47
|
+
wrapEl: undefined,
|
|
48
|
+
contentEl: undefined,
|
|
49
|
+
shouldScroll: undefined,
|
|
50
|
+
duration: undefined,
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
observers: {
|
|
54
|
+
'wrapWidth, contentWidth, scrollable': function() {
|
|
55
|
+
this.setData({ shouldScroll: scrollable && contentWidth > wrapWidth });
|
|
56
|
+
},
|
|
57
|
+
'speed, contentWidth': function() {
|
|
58
|
+
this.setData({ duration: contentWidth / speed });
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
lifetimes: {
|
|
63
|
+
attached() {
|
|
64
|
+
const self = this;
|
|
65
|
+
// $effect #1
|
|
66
|
+
if (wrapEl && contentEl) {
|
|
67
|
+
wrapWidth = wrapEl.offsetWidth;
|
|
68
|
+
contentWidth = contentEl.scrollWidth;
|
|
69
|
+
};
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
methods: {
|
|
74
|
+
close(e) {
|
|
75
|
+
// 用户定义的处理函数
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<block wx:if="{{visible}}">
|
|
2
|
+
<view class="ln-notice-bar ln-notice-bar--{type}" style="{color ? `color:${color};` : ''}{background ? `background:${background};` : ''}">
|
|
3
|
+
<block wx:if="{{showIcon}}">
|
|
4
|
+
<view class="ln-notice-bar__icon">
|
|
5
|
+
<icon icon="{{Volume2}}" size="{{16}}" />
|
|
6
|
+
</view>
|
|
7
|
+
{{/if}} <view class="ln-notice-bar__wrap" this="{{wrapEl}}" bindchange="__bind_wrapEl">
|
|
8
|
+
<view class="ln-notice-bar__content" style="{{shouldScroll ? `animation-duration:${duration}s;animation-delay:${delay}s` : ''}}" class="{{shouldScroll? 'is-scrolling' : ''}}" this="{{contentEl}}" bindchange="__bind_contentEl">
|
|
9
|
+
{{text}} </view>
|
|
10
|
+
</view>
|
|
11
|
+
<block wx:if="{{closeable}}">
|
|
12
|
+
<button class="ln-notice-bar__close" type="button" aria-label="关闭" bindtap="close">
|
|
13
|
+
<icon icon="{{X}}" size="{{14}}" />
|
|
14
|
+
</button>
|
|
15
|
+
{{/if}} </block>
|
|
16
|
+
</block>
|
|
17
|
+
</view>
|
|
18
|
+
{{/if}}</block>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ln-notice-bar{display:flex;align-items:center;gap:16rpx;padding:16rpx 24rpx;font-size:28rpx;line-height:1.5;border-radius:16rpx;border:1px solid rgba(0,0,0,0);overflow:hidden;color:#ff974a;background-color:rgb(255,246.68,240.52);border-color:rgb(255,234.2,218.8)}.ln-notice-bar--warning{color:#ff974a;background-color:rgb(255,246.68,240.52);border-color:rgb(255,234.2,218.8)}.ln-notice-bar--danger{color:#fc5a5a;background-color:rgb(254.76,241.8,241.8);border-color:rgb(254.4,222,222)}.ln-notice-bar--success{color:#31c27c;background-color:rgb(238.52,250.12,244.52);border-color:rgb(213.8,242.8,228.8)}.ln-notice-bar--primary{color:#0062ff;background-color:rgb(234.6,242.44,255);border-color:rgb(204,223.6,255)}.ln-notice-bar__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;line-height:1;align-self:center}.ln-notice-bar__wrap{flex:1;overflow:hidden;white-space:nowrap}.ln-notice-bar__content{display:inline-block;white-space:nowrap}.ln-notice-bar__content.is-scrolling{animation:ln-notice-scroll linear infinite}.ln-notice-bar__close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;border:none;background:none;color:inherit;opacity:.7}.dark .ln-notice-bar .ln-notice-bar__close .ln-icon{color:inherit}.dark .ln-notice-bar,.dark .ln-notice-bar.ln-notice-bar--warning{color:#ffb680;background-color:rgba(255,151,74,.12);border-color:rgba(255,151,74,.25)}.dark .ln-notice-bar .ln-notice-bar__icon .ln-icon,.dark .ln-notice-bar.ln-notice-bar--warning .ln-notice-bar__icon .ln-icon{color:#ffb680}.dark .ln-notice-bar.ln-notice-bar--danger{color:#ff7875;background-color:rgba(252,90,90,.12);border-color:rgba(252,90,90,.25)}.dark .ln-notice-bar.ln-notice-bar--danger .ln-notice-bar__icon .ln-icon{color:#ff7875}.dark .ln-notice-bar.ln-notice-bar--success{color:#46c889;background-color:rgba(49,194,124,.12);border-color:rgba(49,194,124,.25)}.dark .ln-notice-bar.ln-notice-bar--success .ln-notice-bar__icon .ln-icon{color:#46c889}.dark .ln-notice-bar.ln-notice-bar--primary{color:#66a0ff;background-color:rgba(0,98,255,.12);border-color:rgba(0,98,255,.25)}.dark .ln-notice-bar.ln-notice-bar--primary .ln-notice-bar__icon .ln-icon{color:#66a0ff}@keyframes ln-notice-scroll{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}
|