bulade-ui 1.0.4 → 1.0.6

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 (128) hide show
  1. package/miniprogram_dist/bld-action-sheet/index.js +196 -0
  2. package/miniprogram_dist/bld-action-sheet/index.js.map +1 -0
  3. package/miniprogram_dist/bld-action-sheet/index.json +8 -0
  4. package/miniprogram_dist/bld-action-sheet/index.wxml +57 -0
  5. package/miniprogram_dist/bld-action-sheet/index.wxss +160 -0
  6. package/miniprogram_dist/bld-badge/index.js +156 -0
  7. package/miniprogram_dist/bld-badge/index.js.map +1 -0
  8. package/miniprogram_dist/bld-badge/index.json +4 -0
  9. package/miniprogram_dist/bld-badge/index.wxml +14 -0
  10. package/miniprogram_dist/bld-badge/index.wxss +43 -0
  11. package/miniprogram_dist/bld-button/index.wxml +0 -1
  12. package/miniprogram_dist/bld-drawer/index.js +2 -2
  13. package/miniprogram_dist/bld-drawer/index.js.map +1 -1
  14. package/miniprogram_dist/bld-drawer/index.wxss +4 -3
  15. package/miniprogram_dist/bld-empty-page/index.js +123 -0
  16. package/miniprogram_dist/bld-empty-page/index.js.map +1 -0
  17. package/miniprogram_dist/bld-empty-page/index.json +3 -0
  18. package/miniprogram_dist/bld-empty-page/index.wxml +11 -0
  19. package/miniprogram_dist/bld-empty-page/index.wxss +14 -0
  20. package/miniprogram_dist/bld-message/index.js +2 -2
  21. package/miniprogram_dist/bld-message/index.js.map +1 -1
  22. package/miniprogram_dist/bld-message/message.js +2 -2
  23. package/miniprogram_dist/bld-message/message.js.map +1 -1
  24. package/miniprogram_dist/bld-modal/index.js +223 -0
  25. package/miniprogram_dist/bld-modal/index.js.map +1 -0
  26. package/miniprogram_dist/bld-modal/index.json +6 -0
  27. package/miniprogram_dist/bld-modal/index.wxml +23 -0
  28. package/miniprogram_dist/bld-modal/index.wxss +97 -0
  29. package/miniprogram_dist/bld-modal/modal.js +147 -0
  30. package/miniprogram_dist/bld-modal/modal.js.map +1 -0
  31. package/miniprogram_dist/bld-navbar/index.js +167 -0
  32. package/miniprogram_dist/bld-navbar/index.js.map +1 -0
  33. package/miniprogram_dist/bld-navbar/index.json +6 -0
  34. package/miniprogram_dist/bld-navbar/index.wxml +8 -0
  35. package/miniprogram_dist/bld-navbar/index.wxss +31 -0
  36. package/miniprogram_dist/bld-navbar-group/index.js +243 -0
  37. package/miniprogram_dist/bld-navbar-group/index.js.map +1 -0
  38. package/miniprogram_dist/bld-navbar-group/index.json +4 -0
  39. package/miniprogram_dist/bld-navbar-group/index.wxml +37 -0
  40. package/miniprogram_dist/bld-navbar-group/index.wxss +30 -0
  41. package/miniprogram_dist/bld-notice-bar/index.js +171 -0
  42. package/miniprogram_dist/bld-notice-bar/index.js.map +1 -0
  43. package/miniprogram_dist/bld-notice-bar/index.json +3 -0
  44. package/miniprogram_dist/bld-notice-bar/index.wxml +30 -0
  45. package/miniprogram_dist/bld-notice-bar/index.wxss +51 -0
  46. package/miniprogram_dist/bld-pop-up/index.js +129 -0
  47. package/miniprogram_dist/bld-pop-up/index.js.map +1 -0
  48. package/miniprogram_dist/bld-pop-up/index.json +6 -0
  49. package/miniprogram_dist/bld-pop-up/index.wxml +18 -0
  50. package/miniprogram_dist/bld-pop-up/index.wxss +27 -0
  51. package/miniprogram_dist/bld-tag/index.js +134 -0
  52. package/miniprogram_dist/bld-tag/index.js.map +1 -0
  53. package/miniprogram_dist/bld-tag/index.json +3 -0
  54. package/miniprogram_dist/bld-tag/index.wxml +3 -0
  55. package/miniprogram_dist/bld-tag/index.wxss +108 -0
  56. package/miniprogram_dist/bld-toast/index.js +2 -2
  57. package/miniprogram_dist/bld-toast/index.js.map +1 -1
  58. package/miniprogram_dist/bld-toast/toast.js +2 -2
  59. package/miniprogram_dist/bld-toast/toast.js.map +1 -1
  60. package/miniprogram_dist/cell/index.js +2 -2
  61. package/miniprogram_dist/cell/index.js.map +1 -1
  62. package/miniprogram_dist/cell-group/index.js +2 -2
  63. package/miniprogram_dist/cell-group/index.js.map +1 -1
  64. package/miniprogram_dist/grid/index.js +2 -2
  65. package/miniprogram_dist/grid/index.js.map +1 -1
  66. package/miniprogram_dist/grid-item/index.js +2 -2
  67. package/miniprogram_dist/grid-item/index.js.map +1 -1
  68. package/miniprogram_dist/icon/index.js +2 -2
  69. package/miniprogram_dist/icon/index.js.map +1 -1
  70. package/miniprogram_dist/timeline/index.js +2 -2
  71. package/miniprogram_dist/timeline/index.js.map +1 -1
  72. package/miniprogram_dist/timeline-item/index.js +2 -2
  73. package/miniprogram_dist/timeline-item/index.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/bld-action-sheet/index.js +83 -0
  76. package/src/bld-action-sheet/index.json +8 -0
  77. package/src/bld-action-sheet/index.scss +180 -0
  78. package/src/bld-action-sheet/index.wxml +57 -0
  79. package/src/bld-action-sheet/index.wxss +160 -0
  80. package/src/bld-badge/index.js +53 -0
  81. package/src/bld-badge/index.json +4 -0
  82. package/src/bld-badge/index.scss +46 -0
  83. package/src/bld-badge/index.wxml +14 -0
  84. package/src/bld-badge/index.wxss +43 -0
  85. package/src/bld-button/index.wxml +0 -1
  86. package/src/bld-content-container/index.js +46 -0
  87. package/src/bld-content-container/index.json +3 -0
  88. package/src/bld-content-container/index.scss +0 -0
  89. package/src/bld-content-container/index.wxml +5 -0
  90. package/src/bld-content-container/index.wxss +0 -0
  91. package/src/bld-drawer/index.scss +8 -3
  92. package/src/bld-drawer/index.wxss +4 -3
  93. package/src/bld-empty-page/index.js +23 -0
  94. package/src/bld-empty-page/index.json +3 -0
  95. package/src/bld-empty-page/index.scss +15 -0
  96. package/src/bld-empty-page/index.wxml +11 -0
  97. package/src/bld-empty-page/index.wxss +14 -0
  98. package/src/bld-modal/index.js +123 -0
  99. package/src/bld-modal/index.json +6 -0
  100. package/src/bld-modal/index.scss +108 -0
  101. package/src/bld-modal/index.wxml +23 -0
  102. package/src/bld-modal/index.wxss +97 -0
  103. package/src/bld-modal/modal.js +38 -0
  104. package/src/bld-navbar/index.js +63 -0
  105. package/src/bld-navbar/index.json +6 -0
  106. package/src/bld-navbar/index.scss +35 -0
  107. package/src/bld-navbar/index.wxml +8 -0
  108. package/src/bld-navbar/index.wxss +31 -0
  109. package/src/bld-navbar-group/index.js +139 -0
  110. package/src/bld-navbar-group/index.json +4 -0
  111. package/src/bld-navbar-group/index.scss +33 -0
  112. package/src/bld-navbar-group/index.wxml +37 -0
  113. package/src/bld-navbar-group/index.wxss +30 -0
  114. package/src/bld-notice-bar/index.js +69 -0
  115. package/src/bld-notice-bar/index.json +3 -0
  116. package/src/bld-notice-bar/index.scss +59 -0
  117. package/src/bld-notice-bar/index.wxml +30 -0
  118. package/src/bld-notice-bar/index.wxss +51 -0
  119. package/src/bld-pop-up/index.js +29 -0
  120. package/src/bld-pop-up/index.json +6 -0
  121. package/src/bld-pop-up/index.scss +27 -0
  122. package/src/bld-pop-up/index.wxml +18 -0
  123. package/src/bld-pop-up/index.wxss +27 -0
  124. package/src/bld-tag/index.js +34 -0
  125. package/src/bld-tag/index.json +3 -0
  126. package/src/bld-tag/index.scss +127 -0
  127. package/src/bld-tag/index.wxml +3 -0
  128. package/src/bld-tag/index.wxss +108 -0
@@ -0,0 +1,160 @@
1
+ .m-mask {
2
+ z-index: 1998;
3
+ position: fixed;
4
+ top: 0;
5
+ left: 0;
6
+ right: 0;
7
+ bottom: 0;
8
+ opacity: 1;
9
+ visibility: visible;
10
+ background: var(--color-mask, rgba(0, 0, 0, 0.55));
11
+ transition: all 0.25s ease-in-out;
12
+ }
13
+ .m-mask.is-hidden {
14
+ opacity: 0;
15
+ visibility: hidden;
16
+ }
17
+
18
+ .m-sheet {
19
+ z-index: 1999;
20
+ position: fixed;
21
+ width: 100%;
22
+ left: 0;
23
+ right: 0;
24
+ bottom: 0;
25
+ visibility: visible;
26
+ background: #fff;
27
+ transform: translate3d(0, 0, 0);
28
+ transform-origin: center;
29
+ transition: all 0.25s ease-in-out;
30
+ box-sizing: border-box;
31
+ padding-bottom: constant(safe-area-inset-bottom);
32
+ padding-bottom: env(safe-area-inset-bottom);
33
+ }
34
+ .m-sheet.is-hidden {
35
+ transform: translate3d(0, 100%, 0);
36
+ visibility: hidden;
37
+ }
38
+ .m-sheet .m-sheet__header {
39
+ background: #fff;
40
+ text-align: center;
41
+ position: relative;
42
+ font-size: 24rpx;
43
+ color: #80848f;
44
+ }
45
+ .m-sheet .m-sheet__header::after {
46
+ content: "";
47
+ position: absolute;
48
+ top: 0;
49
+ left: 0;
50
+ width: 200%;
51
+ height: 200%;
52
+ transform: scale(0.5);
53
+ transform-origin: 0 0;
54
+ pointer-events: none;
55
+ box-sizing: border-box;
56
+ border: 0 solid var(--color-border, #dcdee2);
57
+ border-bottom-width: 1px;
58
+ }
59
+ .m-sheet .m-sheet__item {
60
+ position: relative;
61
+ }
62
+ .m-sheet .m-sheet__item::after {
63
+ content: "";
64
+ position: absolute;
65
+ top: 0;
66
+ left: 0;
67
+ width: 200%;
68
+ height: 200%;
69
+ transform: scale(0.5);
70
+ transform-origin: 0 0;
71
+ pointer-events: none;
72
+ box-sizing: border-box;
73
+ border: 0 solid var(--color-border, #dcdee2);
74
+ border-bottom-width: 1px;
75
+ }
76
+ .m-sheet .m-sheet__item:nth-last-child(1)::after {
77
+ display: none;
78
+ }
79
+ .m-sheet .m-sheet__cancel {
80
+ border-top: 24rpx solid #e3e3e3;
81
+ }
82
+ .m-sheet .m-sheet__loading {
83
+ display: inline-block;
84
+ vertical-align: middle;
85
+ margin-right: 20rpx;
86
+ width: 24rpx;
87
+ height: 24rpx;
88
+ background: 0 0;
89
+ border-radius: 50%;
90
+ border: 4rpx solid #e5e5e5;
91
+ border-left-color: #666;
92
+ animation: btn-spin 0.6s linear infinite;
93
+ }
94
+ .m-sheet .m-sheet__text {
95
+ display: inline-block;
96
+ vertical-align: middle;
97
+ }
98
+ .m-sheet .m-sheet__btn-icon {
99
+ margin-right: 8rpx;
100
+ }
101
+ @keyframes btn-spin {
102
+ 0% {
103
+ transform: rotate(0);
104
+ }
105
+ 100% {
106
+ transform: rotate(360deg);
107
+ }
108
+ }
109
+ .m-sheet .m-button {
110
+ display: flex;
111
+ align-items: center;
112
+ justify-content: center;
113
+ position: relative;
114
+ white-space: nowrap;
115
+ letter-spacing: 4rpx;
116
+ height: 96rpx;
117
+ font-size: 32rpx;
118
+ border: 0 !important;
119
+ border-radius: 0;
120
+ color: #495060;
121
+ overflow: visible;
122
+ background-color: #fff;
123
+ box-sizing: border-box;
124
+ transition: opacity 0.16s, background-color 0.16s;
125
+ }
126
+ .m-sheet .m-button.is-hover {
127
+ background-color: #f9f9f9;
128
+ }
129
+ .m-sheet .m-button.is-disabled {
130
+ color: #c8c9cc;
131
+ }
132
+ .m-sheet .m-button::after {
133
+ border: none;
134
+ content: " ";
135
+ height: 1px;
136
+ position: absolute;
137
+ bottom: 0;
138
+ left: 0;
139
+ transform: scaleY(0.5);
140
+ transform-origin: 0 0;
141
+ box-sizing: border-box;
142
+ }
143
+ .m-sheet .m-button .m-sheet__btn-icon {
144
+ display: inline-block;
145
+ font-size: 28rpx;
146
+ width: 24rpx;
147
+ height: 24rpx;
148
+ }
149
+ .m-sheet .m-button .m-button__loading {
150
+ display: inline-block;
151
+ vertical-align: middle;
152
+ width: 32rpx;
153
+ height: 32rpx;
154
+ background-color: 0 0;
155
+ border-radius: 50%;
156
+ border: 4rpx solid currentColor;
157
+ border-left-color: transparent;
158
+ animation: btn-spinner 0.8s linear;
159
+ animation-iteration-count: infinite;
160
+ }
@@ -0,0 +1,53 @@
1
+ Component({
2
+ externalClasses: ['custom-class'],
3
+
4
+ options: {
5
+ addGlobalClass: true,
6
+ },
7
+
8
+ properties: {
9
+ value: {
10
+ type: Number,
11
+ optionalTypes: [Number, String],
12
+ value: '',
13
+ observer: '_valueObserver'
14
+ },
15
+ max: {
16
+ type: Number,
17
+ value: 99
18
+ },
19
+ bgcolor: {
20
+ type: String,
21
+ value: ''
22
+ },
23
+ isDot: {
24
+ type: Boolean,
25
+ value: false
26
+ },
27
+ static: {
28
+ type: Boolean,
29
+ value: false
30
+ }
31
+ },
32
+
33
+ data: {
34
+ _value: 0
35
+ },
36
+
37
+ methods: {
38
+ _valueObserver() {
39
+ const { value, max } = this.data
40
+
41
+ let _value = ''
42
+ if (!isNaN(value)) {
43
+ _value = parseInt(value) > parseInt(max) ? `${max}+` : value
44
+ } else {
45
+ _value = value
46
+ }
47
+
48
+ this.setData({
49
+ _value
50
+ })
51
+ }
52
+ }
53
+ })
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "usingComponents": {}
4
+ }
@@ -0,0 +1,46 @@
1
+ .m-badge {
2
+ position: relative;
3
+ display: inline-block;
4
+ line-height: 1;
5
+
6
+ .m-badge-dot {
7
+ z-index: 1;
8
+ position: absolute;
9
+ top: 0;
10
+ right: 0;
11
+ height: 18rpx;
12
+ width: 18rpx;
13
+ transform: translate(50%, -50%);
14
+ transform-origin: 0;
15
+ border-radius: 50%;
16
+ background-color: var(--color-danger, #F56C6C);
17
+ box-shadow: 0 0 0 1px #fff;
18
+ }
19
+
20
+ .m-badge-count {
21
+ z-index: 1;
22
+ position: absolute;
23
+ top: 0;
24
+ right: 0;
25
+ padding: 0 6rpx;
26
+ min-width: 20rpx;
27
+ height: 28rpx;
28
+ line-height: 28rpx;
29
+ color: #fff;
30
+ font-size: 24rpx;
31
+ border-radius: 40rpx;
32
+ border: 1px solid transparent;
33
+ text-align: center;
34
+ white-space: nowrap;
35
+ transform: translate(80%, -50%);
36
+ background-color: var(--color-danger, #F56C6C);
37
+ box-shadow: 0 0 0 4rpx #fff;
38
+ box-sizing: content-box;
39
+
40
+ &.m-badge-count__static {
41
+ display: inline-block;
42
+ position: static;
43
+ transform: translateX(0);
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,14 @@
1
+ <view class="m-badge custom-class">
2
+ <slot />
3
+ <view
4
+ wx:if="{{ isDot }}"
5
+ class="m-badge-dot"
6
+ style="{{ bgcolor ? 'background-color: ' + bgcolor : '' }}"
7
+ ></view>
8
+
9
+ <view
10
+ wx:elif="{{ value }}"
11
+ class="m-badge-count {{ static ? 'm-badge-count__static':'' }}"
12
+ style="{{ bgcolor ? 'background-color: ' + bgcolor : '' }}"
13
+ >{{ _value }}</view>
14
+ </view>
@@ -0,0 +1,43 @@
1
+ .m-badge {
2
+ position: relative;
3
+ display: inline-block;
4
+ line-height: 1;
5
+ }
6
+ .m-badge .m-badge-dot {
7
+ z-index: 1;
8
+ position: absolute;
9
+ top: 0;
10
+ right: 0;
11
+ height: 18rpx;
12
+ width: 18rpx;
13
+ transform: translate(50%, -50%);
14
+ transform-origin: 0;
15
+ border-radius: 50%;
16
+ background-color: var(--color-danger, #F56C6C);
17
+ box-shadow: 0 0 0 1px #fff;
18
+ }
19
+ .m-badge .m-badge-count {
20
+ z-index: 1;
21
+ position: absolute;
22
+ top: 0;
23
+ right: 0;
24
+ padding: 0 6rpx;
25
+ min-width: 20rpx;
26
+ height: 28rpx;
27
+ line-height: 28rpx;
28
+ color: #fff;
29
+ font-size: 24rpx;
30
+ border-radius: 40rpx;
31
+ border: 1px solid transparent;
32
+ text-align: center;
33
+ white-space: nowrap;
34
+ transform: translate(80%, -50%);
35
+ background-color: var(--color-danger, #F56C6C);
36
+ box-shadow: 0 0 0 4rpx #fff;
37
+ box-sizing: content-box;
38
+ }
39
+ .m-badge .m-badge-count.m-badge-count__static {
40
+ display: inline-block;
41
+ position: static;
42
+ transform: translateX(0);
43
+ }
@@ -1,4 +1,3 @@
1
1
  <view class="button {{ type }} {{ size }} iclass">
2
2
  <slot />
3
- <bld-icon name="loading" />
4
3
  </view>
@@ -0,0 +1,46 @@
1
+ const app = getApp();
2
+
3
+ const menuButtonInfo = app.globalData.menuButtonDistance;
4
+ const systemInfo = app.globalData.systemInfo;
5
+ const paddingBottomUnit = 40;
6
+ const statusBarHeight = app.globalData.systemInfo.statusBarHeight;
7
+ const gap = menuButtonInfo.top - statusBarHeight;
8
+ const navBarHeight = statusBarHeight + menuButtonInfo.height + gap * 2;
9
+
10
+ Component({
11
+ externalClasses: ["iclass"],
12
+ options: {
13
+ styleIsolation: 'apply-shared'
14
+ },
15
+ properties: {
16
+ navBarPosition: {
17
+ type: String,
18
+ value: "",
19
+ },
20
+ top: {
21
+ type: Number,
22
+ value: 1,
23
+ },
24
+ bottom: {
25
+ type: Number,
26
+ value: 1,
27
+ },
28
+ },
29
+ data: {
30
+ style: `padding-top: ${gap}px;padding-bottom: ${paddingBottomUnit}px`,
31
+ },
32
+
33
+ observers: {
34
+ "navBarPosition, top, bottom": function (navBarPosition, top, bottom) {
35
+ if (navBarPosition === "fixed") {
36
+ this.setData({
37
+ style: `padding-top: ${navBarHeight + gap * this.data.top}px;padding-bottom: ${bottom * paddingBottomUnit}px`,
38
+ });
39
+ } else {
40
+ this.setData({
41
+ style: `padding-top: ${gap * this.data.top}px;padding-bottom: ${bottom * paddingBottomUnit}px`,
42
+ });
43
+ }
44
+ },
45
+ },
46
+ });
@@ -0,0 +1,3 @@
1
+ {
2
+ "component": true
3
+ }
File without changes
@@ -0,0 +1,5 @@
1
+ <view
2
+ class="content-container iclass"
3
+ style="{{ style }}">
4
+ <slot />
5
+ </view>
File without changes
@@ -24,7 +24,8 @@
24
24
  right: 0;
25
25
  bottom: 0;
26
26
  background-color: var(--color-mask, rgba(0, 0, 0, 0.55));
27
- transition: opacity .25s ease-in-out, visibility .25s ease-in-out;
27
+ // transition: opacity .25s ease-in-out, visibility .25s ease-in-out;
28
+ transition: all 200ms ease;
28
29
  }
29
30
 
30
31
  .m-drawer__content {
@@ -33,7 +34,9 @@
33
34
  position: fixed;
34
35
  transform-origin: center;
35
36
  background-color: #fff;
36
- transition: transform .25s ease-in-out, opacity .25s ease-in-out, visibility .25s ease-in-out;
37
+ // transition: transform .25s ease-in-out, opacity .25s ease-in-out, visibility .25s ease-in-out;
38
+ transition: all 300ms ease;
39
+ border-radius:20rpx;
37
40
  }
38
41
 
39
42
  &.m-drawer--left {
@@ -41,6 +44,7 @@
41
44
  top: 0;
42
45
  left: 0;
43
46
  transform: translate3d(-100%, 0, 0);
47
+
44
48
  }
45
49
  }
46
50
 
@@ -66,7 +70,8 @@
66
70
  left: 0;
67
71
  bottom: 0;
68
72
  width: 100%;
69
- transform: translate3d(0, 100%, 0);
73
+ // transform: translate3d(0, 100%, 0);
74
+ transform: scale(1) translate3d(0, 100%, 0);
70
75
  padding-bottom: constant(safe-area-inset-bottom);
71
76
  padding-bottom: env(safe-area-inset-bottom);
72
77
  }
@@ -21,7 +21,7 @@
21
21
  right: 0;
22
22
  bottom: 0;
23
23
  background-color: var(--color-mask, rgba(0, 0, 0, 0.55));
24
- transition: opacity 0.25s ease-in-out, visibility 0.25s ease-in-out;
24
+ transition: all 200ms ease;
25
25
  }
26
26
  .m-drawer .m-drawer__content {
27
27
  opacity: 0;
@@ -29,7 +29,8 @@
29
29
  position: fixed;
30
30
  transform-origin: center;
31
31
  background-color: #fff;
32
- transition: transform 0.25s ease-in-out, opacity 0.25s ease-in-out, visibility 0.25s ease-in-out;
32
+ transition: all 300ms ease;
33
+ border-radius: 20rpx;
33
34
  }
34
35
  .m-drawer.m-drawer--left .m-drawer__content {
35
36
  top: 0;
@@ -51,7 +52,7 @@
51
52
  left: 0;
52
53
  bottom: 0;
53
54
  width: 100%;
54
- transform: translate3d(0, 100%, 0);
55
+ transform: scale(1) translate3d(0, 100%, 0);
55
56
  padding-bottom: constant(safe-area-inset-bottom);
56
57
  padding-bottom: env(safe-area-inset-bottom);
57
58
  }
@@ -0,0 +1,23 @@
1
+ const app = getApp();
2
+
3
+ Component({
4
+ externalClasses: ["iclass"],
5
+ properties: {
6
+ content: {
7
+ type: String,
8
+ value: "这里什么都没有",
9
+ },
10
+ imageSrc: {
11
+ type: String,
12
+ value: "empty/empty-default.png",
13
+ },
14
+ padding: {
15
+ type: String,
16
+ value: "40% 0",
17
+ },
18
+ showImage: {
19
+ type: Boolean,
20
+ value: true,
21
+ },
22
+ },
23
+ });
@@ -0,0 +1,3 @@
1
+ {
2
+ "component": true
3
+ }
@@ -0,0 +1,15 @@
1
+ .empty {
2
+ display: flex;
3
+ align-items: center;
4
+ flex-direction: column;
5
+ justify-content: center;
6
+
7
+ font-weight: 400;
8
+ color: #a3a3a3;
9
+ .img {
10
+ height: 300rpx;
11
+ width: 300rpx;
12
+ margin-bottom: 32rpx;
13
+ background: none;
14
+ }
15
+ }
@@ -0,0 +1,11 @@
1
+ <view
2
+ class="empty iclass"
3
+ style="padding: {{ padding }}"
4
+ >
5
+ <cloud-image
6
+ wx:if="{{ showImage }}"
7
+ iclass="img iclass"
8
+ src="{{ imageSrc }}"
9
+ />
10
+ <text>{{ content }}</text>
11
+ </view>
@@ -0,0 +1,14 @@
1
+ .empty {
2
+ display: flex;
3
+ align-items: center;
4
+ flex-direction: column;
5
+ justify-content: center;
6
+ font-weight: 400;
7
+ color: #a3a3a3;
8
+ }
9
+ .empty .img {
10
+ height: 300rpx;
11
+ width: 300rpx;
12
+ margin-bottom: 32rpx;
13
+ background: none;
14
+ }
@@ -0,0 +1,123 @@
1
+ Component({
2
+ externalClasses: ['custom-class', 'custom-mask-class', 'custom-body-class'],
3
+
4
+ options: {
5
+ addGlobalClass: true,
6
+ },
7
+
8
+ properties: {
9
+ visible: {
10
+ type: Boolean,
11
+ value: false
12
+ },
13
+ title: {
14
+ type: String,
15
+ value: ''
16
+ },
17
+ content: {
18
+ type: String,
19
+ value: ''
20
+ },
21
+ closeOnClickModal: {
22
+ type: Boolean,
23
+ value: true
24
+ },
25
+ showConfirmButton: {
26
+ type: Boolean,
27
+ value: true
28
+ },
29
+ showCancelButton: {
30
+ type: Boolean,
31
+ value: true
32
+ },
33
+ confirmButtonText: {
34
+ type: String,
35
+ value: '确定'
36
+ },
37
+ cancelButtonText: {
38
+ type: String,
39
+ value: '取消'
40
+ },
41
+ confirmTextColor: {
42
+ type: String,
43
+ value: '#409EFF'
44
+ },
45
+ loading: {
46
+ type: Boolean,
47
+ value: false
48
+ },
49
+ asyncClose: {
50
+ type: Boolean,
51
+ value: false
52
+ }
53
+ },
54
+
55
+ methods: {
56
+ _reset() {
57
+ this.setData({
58
+ title: '',
59
+ content: '',
60
+ showConfirmButton: true,
61
+ showCancelButton: true,
62
+ confirmButtonText: '确定',
63
+ cancelButtonText: '取消',
64
+ confirmTextColor: '#409EFF',
65
+ loading: false,
66
+ asyncClose: false
67
+ })
68
+ },
69
+
70
+ // 确定
71
+ onConfirm() {
72
+ // 异步
73
+ if (this.data.asyncClose) {
74
+ this.setData({
75
+ loading: true
76
+ })
77
+ if (this._confirm) {
78
+ this._confirm()
79
+ }
80
+ } else {
81
+ if (this._confirm) {
82
+ this.close()
83
+ }
84
+ }
85
+ this.triggerEvent('confirm')
86
+ },
87
+
88
+ onCancel() {
89
+ if (this.data.loading) return
90
+
91
+ this.setData({
92
+ visible: false
93
+ })
94
+ this.triggerEvent('cancel')
95
+
96
+ if (this._cancel) {
97
+ this._cancel()
98
+ this.close()
99
+ }
100
+ },
101
+
102
+ onMaskClick() {
103
+ if (!this.data.closeOnClickModal) return;
104
+ this.close()
105
+ },
106
+
107
+ _show(options) {
108
+ this.setData({
109
+ ...options,
110
+ visible: true
111
+ })
112
+ },
113
+
114
+ // 关闭并重置默认参数
115
+ close() {
116
+ this.setData({
117
+ visible: false
118
+ })
119
+
120
+ this.triggerEvent('close')
121
+ }
122
+ }
123
+ })
@@ -0,0 +1,6 @@
1
+ {
2
+ "component": true,
3
+ "usingComponents": {
4
+ "m-button": "../button/index"
5
+ }
6
+ }