bulade-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/.babelrc +12 -0
  2. package/.vscode/extensions.json +7 -0
  3. package/.vscode/settings.json +33 -0
  4. package/LICENSE +21 -0
  5. package/README.md +43 -0
  6. package/gulpfile.js +26 -0
  7. package/miniprogram_dist/assets/font/iconfont.ttf +0 -0
  8. package/miniprogram_dist/assets/font/iconfont.wxss +186 -0
  9. package/miniprogram_dist/assets/style/border.wxss +95 -0
  10. package/miniprogram_dist/bld-button/index.js +112 -0
  11. package/miniprogram_dist/bld-button/index.json +7 -0
  12. package/miniprogram_dist/bld-button/index.wxml +3 -0
  13. package/miniprogram_dist/bld-button/index.wxss +33 -0
  14. package/miniprogram_dist/bld-card/index.js +102 -0
  15. package/miniprogram_dist/bld-card/index.json +3 -0
  16. package/miniprogram_dist/bld-card/index.wxml +5 -0
  17. package/miniprogram_dist/bld-card/index.wxss +6 -0
  18. package/miniprogram_dist/bld-cell/index.js +127 -0
  19. package/miniprogram_dist/bld-cell/index.json +7 -0
  20. package/miniprogram_dist/bld-cell/index.wxml +42 -0
  21. package/miniprogram_dist/bld-cell/index.wxss +39 -0
  22. package/miniprogram_dist/bld-cell-field/index.js +110 -0
  23. package/miniprogram_dist/bld-cell-field/index.json +6 -0
  24. package/miniprogram_dist/bld-cell-field/index.wxml +8 -0
  25. package/miniprogram_dist/bld-cell-field/index.wxss +19 -0
  26. package/miniprogram_dist/bld-cell-group/index.js +110 -0
  27. package/miniprogram_dist/bld-cell-group/index.json +3 -0
  28. package/miniprogram_dist/bld-cell-group/index.wxml +14 -0
  29. package/miniprogram_dist/bld-cell-group/index.wxss +11 -0
  30. package/miniprogram_dist/bld-form/bld-form-item/bld-form-date/index.js +267 -0
  31. package/miniprogram_dist/bld-form/bld-form-item/bld-form-date/index.json +6 -0
  32. package/miniprogram_dist/bld-form/bld-form-item/bld-form-date/index.wxml +44 -0
  33. package/miniprogram_dist/bld-form/bld-form-item/bld-form-date/index.wxss +56 -0
  34. package/miniprogram_dist/bld-form/bld-form-item/bld-form-input/index.js +148 -0
  35. package/miniprogram_dist/bld-form/bld-form-item/bld-form-input/index.json +5 -0
  36. package/miniprogram_dist/bld-form/bld-form-item/bld-form-input/index.wxml +26 -0
  37. package/miniprogram_dist/bld-form/bld-form-item/bld-form-input/index.wxss +27 -0
  38. package/miniprogram_dist/bld-form/bld-form-item/bld-form-select-input/index.js +245 -0
  39. package/miniprogram_dist/bld-form/bld-form-item/bld-form-select-input/index.json +6 -0
  40. package/miniprogram_dist/bld-form/bld-form-item/bld-form-select-input/index.wxml +53 -0
  41. package/miniprogram_dist/bld-form/bld-form-item/bld-form-select-input/index.wxss +120 -0
  42. package/miniprogram_dist/bld-form/bld-form-item/bld-form-step/index.js +158 -0
  43. package/miniprogram_dist/bld-form/bld-form-item/bld-form-step/index.json +5 -0
  44. package/miniprogram_dist/bld-form/bld-form-item/bld-form-step/index.wxml +28 -0
  45. package/miniprogram_dist/bld-form/bld-form-item/bld-form-step/index.wxss +44 -0
  46. package/miniprogram_dist/bld-form/bld-form-item/bld-form-switch/index.js +137 -0
  47. package/miniprogram_dist/bld-form/bld-form-item/bld-form-switch/index.json +5 -0
  48. package/miniprogram_dist/bld-form/bld-form-item/bld-form-switch/index.wxml +7 -0
  49. package/miniprogram_dist/bld-form/bld-form-item/bld-form-switch/index.wxss +21 -0
  50. package/miniprogram_dist/bld-form/bld-form-item/bld-form-textarea/index.js +144 -0
  51. package/miniprogram_dist/bld-form/bld-form-item/bld-form-textarea/index.json +5 -0
  52. package/miniprogram_dist/bld-form/bld-form-item/bld-form-textarea/index.wxml +25 -0
  53. package/miniprogram_dist/bld-form/bld-form-item/bld-form-textarea/index.wxss +27 -0
  54. package/miniprogram_dist/bld-form/bld-form-item/bld-form-time/index.js +209 -0
  55. package/miniprogram_dist/bld-form/bld-form-item/bld-form-time/index.json +6 -0
  56. package/miniprogram_dist/bld-form/bld-form-item/bld-form-time/index.wxml +44 -0
  57. package/miniprogram_dist/bld-form/bld-form-item/bld-form-time/index.wxss +56 -0
  58. package/miniprogram_dist/bld-half-screen/index.js +278 -0
  59. package/miniprogram_dist/bld-half-screen/index.json +5 -0
  60. package/miniprogram_dist/bld-half-screen/index.wxml +36 -0
  61. package/miniprogram_dist/bld-half-screen/index.wxss +107 -0
  62. package/miniprogram_dist/bld-icon/index.js +106 -0
  63. package/miniprogram_dist/bld-icon/index.json +3 -0
  64. package/miniprogram_dist/bld-icon/index.wxml +1 -0
  65. package/miniprogram_dist/bld-icon/index.wxss +171 -0
  66. package/miniprogram_dist/bld-loading/index.js +108 -0
  67. package/miniprogram_dist/bld-loading/index.json +6 -0
  68. package/miniprogram_dist/bld-loading/index.wxml +8 -0
  69. package/miniprogram_dist/bld-loading/index.wxss +29 -0
  70. package/miniprogram_dist/bld-message/index.js +193 -0
  71. package/miniprogram_dist/bld-message/index.json +3 -0
  72. package/miniprogram_dist/bld-message/index.wxml +9 -0
  73. package/miniprogram_dist/bld-message/index.wxss +77 -0
  74. package/miniprogram_dist/bld-message/message.js +163 -0
  75. package/miniprogram_dist/bld-nav-bar/index.js +180 -0
  76. package/miniprogram_dist/bld-nav-bar/index.json +6 -0
  77. package/miniprogram_dist/bld-nav-bar/index.wxml +24 -0
  78. package/miniprogram_dist/bld-nav-bar/index.wxss +36 -0
  79. package/miniprogram_dist/bld-overlay/index.js +116 -0
  80. package/miniprogram_dist/bld-overlay/index.json +3 -0
  81. package/miniprogram_dist/bld-overlay/index.wxml +11 -0
  82. package/miniprogram_dist/bld-overlay/index.wxss +11 -0
  83. package/miniprogram_dist/bld-page/index.js +177 -0
  84. package/miniprogram_dist/bld-page/index.json +7 -0
  85. package/miniprogram_dist/bld-page/index.wxml +28 -0
  86. package/miniprogram_dist/bld-page/index.wxss +16 -0
  87. package/miniprogram_dist/bld-retry/index.js +122 -0
  88. package/miniprogram_dist/bld-retry/index.json +3 -0
  89. package/miniprogram_dist/bld-retry/index.wxml +5 -0
  90. package/miniprogram_dist/bld-retry/index.wxss +23 -0
  91. package/miniprogram_dist/bld-scroll-view/index.js +129 -0
  92. package/miniprogram_dist/bld-scroll-view/index.json +7 -0
  93. package/miniprogram_dist/bld-scroll-view/index.wxml +42 -0
  94. package/miniprogram_dist/bld-scroll-view/index.wxss +7 -0
  95. package/miniprogram_dist/bld-text/index.js +145 -0
  96. package/miniprogram_dist/bld-text/index.json +3 -0
  97. package/miniprogram_dist/bld-text/index.wxml +3 -0
  98. package/miniprogram_dist/bld-text/index.wxss +26 -0
  99. package/miniprogram_dist/bld-toast/index.js +218 -0
  100. package/miniprogram_dist/bld-toast/index.json +6 -0
  101. package/miniprogram_dist/bld-toast/index.wxml +27 -0
  102. package/miniprogram_dist/bld-toast/index.wxss +95 -0
  103. package/miniprogram_dist/bld-toast/toast.js +137 -0
  104. package/miniprogram_dist/bld-wrapper/index.js +172 -0
  105. package/miniprogram_dist/bld-wrapper/index.json +5 -0
  106. package/miniprogram_dist/bld-wrapper/index.wxml +6 -0
  107. package/miniprogram_dist/bld-wrapper/index.wxss +7 -0
  108. package/miniprogram_dist/button/index.js +197 -0
  109. package/miniprogram_dist/button/index.json +3 -0
  110. package/miniprogram_dist/button/index.wxml +42 -0
  111. package/miniprogram_dist/button/index.wxss +176 -0
  112. package/miniprogram_dist/cell/index.js +178 -0
  113. package/miniprogram_dist/cell/index.json +6 -0
  114. package/miniprogram_dist/cell/index.wxml +25 -0
  115. package/miniprogram_dist/cell/index.wxss +63 -0
  116. package/miniprogram_dist/cell-group/index.js +169 -0
  117. package/miniprogram_dist/cell-group/index.json +3 -0
  118. package/miniprogram_dist/cell-group/index.wxml +10 -0
  119. package/miniprogram_dist/cell-group/index.wxss +29 -0
  120. package/miniprogram_dist/grid/index.js +167 -0
  121. package/miniprogram_dist/grid/index.json +4 -0
  122. package/miniprogram_dist/grid/index.wxml +3 -0
  123. package/miniprogram_dist/grid/index.wxss +20 -0
  124. package/miniprogram_dist/grid-item/index.js +171 -0
  125. package/miniprogram_dist/grid-item/index.json +6 -0
  126. package/miniprogram_dist/grid-item/index.wxml +46 -0
  127. package/miniprogram_dist/grid-item/index.wxss +51 -0
  128. package/miniprogram_dist/icon/index.js +141 -0
  129. package/miniprogram_dist/icon/index.json +3 -0
  130. package/miniprogram_dist/icon/index.wxml +35 -0
  131. package/miniprogram_dist/icon/index.wxss +200 -0
  132. package/miniprogram_dist/timeline/index.js +148 -0
  133. package/miniprogram_dist/timeline/index.json +3 -0
  134. package/miniprogram_dist/timeline/index.wxml +1 -0
  135. package/miniprogram_dist/timeline/index.wxss +0 -0
  136. package/miniprogram_dist/timeline-item/index.js +127 -0
  137. package/miniprogram_dist/timeline-item/index.json +6 -0
  138. package/miniprogram_dist/timeline-item/index.wxml +10 -0
  139. package/miniprogram_dist/timeline-item/index.wxss +31 -0
  140. package/miniprogram_dist/utils/systemInfo.js +51 -0
  141. package/package.json +72 -0
  142. package/src/assets/font/iconfont.ttf +0 -0
  143. package/src/assets/font/iconfont.wxss +186 -0
  144. package/src/assets/style/border.wxss +95 -0
  145. package/src/bld-button/index.js +13 -0
  146. package/src/bld-button/index.json +7 -0
  147. package/src/bld-button/index.scss +39 -0
  148. package/src/bld-button/index.wxml +3 -0
  149. package/src/bld-button/index.wxss +33 -0
  150. package/src/bld-card/index.js +3 -0
  151. package/src/bld-card/index.json +3 -0
  152. package/src/bld-card/index.scss +6 -0
  153. package/src/bld-card/index.wxml +5 -0
  154. package/src/bld-card/index.wxss +6 -0
  155. package/src/bld-cell/index.js +28 -0
  156. package/src/bld-cell/index.json +7 -0
  157. package/src/bld-cell/index.scss +42 -0
  158. package/src/bld-cell/index.wxml +42 -0
  159. package/src/bld-cell/index.wxss +39 -0
  160. package/src/bld-cell-field/index.js +11 -0
  161. package/src/bld-cell-field/index.json +6 -0
  162. package/src/bld-cell-field/index.scss +21 -0
  163. package/src/bld-cell-field/index.wxml +8 -0
  164. package/src/bld-cell-field/index.wxss +19 -0
  165. package/src/bld-cell-group/index.js +11 -0
  166. package/src/bld-cell-group/index.json +3 -0
  167. package/src/bld-cell-group/index.scss +13 -0
  168. package/src/bld-cell-group/index.wxml +14 -0
  169. package/src/bld-cell-group/index.wxss +11 -0
  170. package/src/bld-form/bld-form-item/bld-form-date/index.js +167 -0
  171. package/src/bld-form/bld-form-item/bld-form-date/index.json +6 -0
  172. package/src/bld-form/bld-form-item/bld-form-date/index.scss +54 -0
  173. package/src/bld-form/bld-form-item/bld-form-date/index.wxml +44 -0
  174. package/src/bld-form/bld-form-item/bld-form-date/index.wxss +56 -0
  175. package/src/bld-form/bld-form-item/bld-form-input/index.js +48 -0
  176. package/src/bld-form/bld-form-item/bld-form-input/index.json +5 -0
  177. package/src/bld-form/bld-form-item/bld-form-input/index.scss +25 -0
  178. package/src/bld-form/bld-form-item/bld-form-input/index.wxml +26 -0
  179. package/src/bld-form/bld-form-item/bld-form-input/index.wxss +27 -0
  180. package/src/bld-form/bld-form-item/bld-form-select-input/index.js +145 -0
  181. package/src/bld-form/bld-form-item/bld-form-select-input/index.json +6 -0
  182. package/src/bld-form/bld-form-item/bld-form-select-input/index.scss +117 -0
  183. package/src/bld-form/bld-form-item/bld-form-select-input/index.wxml +53 -0
  184. package/src/bld-form/bld-form-item/bld-form-select-input/index.wxss +120 -0
  185. package/src/bld-form/bld-form-item/bld-form-step/index.js +58 -0
  186. package/src/bld-form/bld-form-item/bld-form-step/index.json +5 -0
  187. package/src/bld-form/bld-form-item/bld-form-step/index.scss +42 -0
  188. package/src/bld-form/bld-form-item/bld-form-step/index.wxml +28 -0
  189. package/src/bld-form/bld-form-item/bld-form-step/index.wxss +44 -0
  190. package/src/bld-form/bld-form-item/bld-form-switch/index.js +37 -0
  191. package/src/bld-form/bld-form-item/bld-form-switch/index.json +5 -0
  192. package/src/bld-form/bld-form-item/bld-form-switch/index.scss +23 -0
  193. package/src/bld-form/bld-form-item/bld-form-switch/index.wxml +7 -0
  194. package/src/bld-form/bld-form-item/bld-form-switch/index.wxss +21 -0
  195. package/src/bld-form/bld-form-item/bld-form-textarea/index.js +44 -0
  196. package/src/bld-form/bld-form-item/bld-form-textarea/index.json +5 -0
  197. package/src/bld-form/bld-form-item/bld-form-textarea/index.scss +25 -0
  198. package/src/bld-form/bld-form-item/bld-form-textarea/index.wxml +25 -0
  199. package/src/bld-form/bld-form-item/bld-form-textarea/index.wxss +27 -0
  200. package/src/bld-form/bld-form-item/bld-form-time/index.js +108 -0
  201. package/src/bld-form/bld-form-item/bld-form-time/index.json +6 -0
  202. package/src/bld-form/bld-form-item/bld-form-time/index.scss +54 -0
  203. package/src/bld-form/bld-form-item/bld-form-time/index.wxml +44 -0
  204. package/src/bld-form/bld-form-item/bld-form-time/index.wxss +56 -0
  205. package/src/bld-half-screen/index.js +167 -0
  206. package/src/bld-half-screen/index.json +5 -0
  207. package/src/bld-half-screen/index.scss +109 -0
  208. package/src/bld-half-screen/index.wxml +36 -0
  209. package/src/bld-half-screen/index.wxss +107 -0
  210. package/src/bld-icon/index.js +8 -0
  211. package/src/bld-icon/index.json +3 -0
  212. package/src/bld-icon/index.scss +176 -0
  213. package/src/bld-icon/index.wxml +1 -0
  214. package/src/bld-icon/index.wxss +171 -0
  215. package/src/bld-loading/index.js +9 -0
  216. package/src/bld-loading/index.json +6 -0
  217. package/src/bld-loading/index.scss +25 -0
  218. package/src/bld-loading/index.wxml +8 -0
  219. package/src/bld-loading/index.wxss +29 -0
  220. package/src/bld-message/index.js +91 -0
  221. package/src/bld-message/index.json +3 -0
  222. package/src/bld-message/index.scss +67 -0
  223. package/src/bld-message/index.wxml +9 -0
  224. package/src/bld-message/index.wxss +77 -0
  225. package/src/bld-message/message.js +62 -0
  226. package/src/bld-nav-bar/index.js +90 -0
  227. package/src/bld-nav-bar/index.json +6 -0
  228. package/src/bld-nav-bar/index.scss +40 -0
  229. package/src/bld-nav-bar/index.wxml +24 -0
  230. package/src/bld-nav-bar/index.wxss +36 -0
  231. package/src/bld-overlay/index.js +17 -0
  232. package/src/bld-overlay/index.json +3 -0
  233. package/src/bld-overlay/index.scss +11 -0
  234. package/src/bld-overlay/index.wxml +11 -0
  235. package/src/bld-overlay/index.wxss +11 -0
  236. package/src/bld-page/index.js +78 -0
  237. package/src/bld-page/index.json +7 -0
  238. package/src/bld-page/index.scss +16 -0
  239. package/src/bld-page/index.wxml +28 -0
  240. package/src/bld-page/index.wxss +16 -0
  241. package/src/bld-retry/index.js +23 -0
  242. package/src/bld-retry/index.json +3 -0
  243. package/src/bld-retry/index.scss +26 -0
  244. package/src/bld-retry/index.wxml +5 -0
  245. package/src/bld-retry/index.wxss +23 -0
  246. package/src/bld-scroll-view/index.js +28 -0
  247. package/src/bld-scroll-view/index.json +7 -0
  248. package/src/bld-scroll-view/index.scss +7 -0
  249. package/src/bld-scroll-view/index.wxml +42 -0
  250. package/src/bld-scroll-view/index.wxss +7 -0
  251. package/src/bld-text/index.js +46 -0
  252. package/src/bld-text/index.json +3 -0
  253. package/src/bld-text/index.scss +30 -0
  254. package/src/bld-text/index.wxml +3 -0
  255. package/src/bld-text/index.wxss +26 -0
  256. package/src/bld-toast/index.js +115 -0
  257. package/src/bld-toast/index.json +6 -0
  258. package/src/bld-toast/index.scss +112 -0
  259. package/src/bld-toast/index.wxml +27 -0
  260. package/src/bld-toast/index.wxss +95 -0
  261. package/src/bld-toast/toast.js +35 -0
  262. package/src/bld-wrapper/index.js +75 -0
  263. package/src/bld-wrapper/index.json +5 -0
  264. package/src/bld-wrapper/index.scss +7 -0
  265. package/src/bld-wrapper/index.wxml +6 -0
  266. package/src/bld-wrapper/index.wxss +7 -0
  267. package/src/button/index.js +92 -0
  268. package/src/button/index.json +3 -0
  269. package/src/button/index.scss +207 -0
  270. package/src/button/index.wxml +42 -0
  271. package/src/button/index.wxss +176 -0
  272. package/src/cell/index.js +81 -0
  273. package/src/cell/index.json +6 -0
  274. package/src/cell/index.scss +74 -0
  275. package/src/cell/index.wxml +25 -0
  276. package/src/cell/index.wxss +63 -0
  277. package/src/cell-group/index.js +71 -0
  278. package/src/cell-group/index.json +3 -0
  279. package/src/cell-group/index.scss +32 -0
  280. package/src/cell-group/index.wxml +10 -0
  281. package/src/cell-group/index.wxss +29 -0
  282. package/src/grid/index.js +67 -0
  283. package/src/grid/index.json +4 -0
  284. package/src/grid/index.scss +21 -0
  285. package/src/grid/index.wxml +3 -0
  286. package/src/grid/index.wxss +20 -0
  287. package/src/grid-item/index.js +72 -0
  288. package/src/grid-item/index.json +6 -0
  289. package/src/grid-item/index.scss +59 -0
  290. package/src/grid-item/index.wxml +46 -0
  291. package/src/grid-item/index.wxss +51 -0
  292. package/src/icon/index.js +42 -0
  293. package/src/icon/index.json +3 -0
  294. package/src/icon/index.scss +17 -0
  295. package/src/icon/index.wxml +35 -0
  296. package/src/icon/index.wxss +200 -0
  297. package/src/timeline/index.js +50 -0
  298. package/src/timeline/index.json +3 -0
  299. package/src/timeline/index.scss +0 -0
  300. package/src/timeline/index.wxml +1 -0
  301. package/src/timeline/index.wxss +0 -0
  302. package/src/timeline-item/index.js +28 -0
  303. package/src/timeline-item/index.json +6 -0
  304. package/src/timeline-item/index.scss +37 -0
  305. package/src/timeline-item/index.wxml +10 -0
  306. package/src/timeline-item/index.wxss +31 -0
  307. package/src/utils/systemInfo.js +51 -0
  308. package/tsconfig.json +25 -0
@@ -0,0 +1,35 @@
1
+ function getCtx(selector) {
2
+ const pages = getCurrentPages()
3
+ const ctx = pages[pages.length - 1]
4
+ const componentCtx = ctx.selectComponent(selector)
5
+ if (!componentCtx) {
6
+ console.error('无法找到对应的组件,请按文档说明使用组件')
7
+ return null
8
+ }
9
+ return componentCtx
10
+ }
11
+
12
+
13
+ const Toast = options => {
14
+ const {
15
+ selector = '#toast'
16
+ } = options
17
+ const ctx = getCtx(selector)
18
+
19
+ if (typeof options === "string") {
20
+ options = {
21
+ message: options,
22
+ position: 'bottom'
23
+ }
24
+ }
25
+ ctx.open(options)
26
+
27
+ return ctx
28
+ }
29
+
30
+ Toast.close = (selector = '#toast') => {
31
+ const ctx = getCtx(selector)
32
+ ctx.close()
33
+ }
34
+
35
+ export default Toast
@@ -0,0 +1,75 @@
1
+ const app = getApp();
2
+
3
+ const menuButtonInfo = app.globalData.menuButtonDistance;
4
+ const systemInfo = app.globalData.systemInfo
5
+ // 计算 tab bar 的高度
6
+ const safeArea = systemInfo.safeArea;
7
+ const saleAreaHeight = systemInfo.screenHeight - safeArea.bottom;
8
+ const tabBarHeight = 60 + saleAreaHeight;
9
+
10
+ // 计算 nav bar 的高度
11
+ const statusBarHeight = systemInfo.statusBarHeight;
12
+ const gap = menuButtonInfo.top - statusBarHeight;
13
+
14
+ const navBarHeight = statusBarHeight + menuButtonInfo.height + gap * 2;
15
+
16
+ // 占据 nav bar 和 tab bar 之间的空间
17
+ const navToTab = {
18
+ top: `${navBarHeight}px`,
19
+ height: `calc(100% - ${navBarHeight}px - ${tabBarHeight}px)`,
20
+ };
21
+
22
+ // 占据 nav bar 页面底部的空间
23
+ const navToBottom = {
24
+ top: `${navBarHeight}px`,
25
+ height: `calc(100% - ${navBarHeight}px)`,
26
+ };
27
+
28
+ // 从页面顶部到 tab bar 之间的空间
29
+ const topToTab = {
30
+ top: "0px",
31
+ height: `calc(100% - ${tabBarHeight}px)`,
32
+ };
33
+
34
+ // 占据所有空间
35
+ const topToBottom = {
36
+ top: "0px",
37
+ height: "100%",
38
+ };
39
+
40
+ const modeStyleMap = {
41
+ "nav-to-tab": navToTab,
42
+ "nav-to-bottom": navToBottom,
43
+ "top-to-tab": topToTab,
44
+ "top-to-bottom": topToBottom,
45
+ };
46
+
47
+ function modeToStyle(mode) {
48
+ const styles = modeStyleMap[mode];
49
+ return Object.keys(styles)
50
+ .map((key) => {
51
+ return `${key}: ${styles[key]}`;
52
+ })
53
+ .join(";");
54
+ }
55
+
56
+ Component({
57
+ externalClasses: ["iclass"],
58
+ properties: {
59
+ mode: {
60
+ type: String,
61
+ value: "nav-to-bottom",
62
+ },
63
+ },
64
+ data: {
65
+ style: "height:100%",
66
+ },
67
+
68
+ observers: {
69
+ mode: function () {
70
+ this.setData({
71
+ style: modeToStyle(this.data.mode),
72
+ });
73
+ },
74
+ },
75
+ });
@@ -0,0 +1,5 @@
1
+ {
2
+ "component": true,
3
+ "styleIsolation": "apply-shared",
4
+ "usingComponents": {}
5
+ }
@@ -0,0 +1,7 @@
1
+ .container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ overflow: auto;
5
+ position: absolute;
6
+ width: 100%;
7
+ }
@@ -0,0 +1,6 @@
1
+ <view
2
+ class="iclass container"
3
+ style="{{ style }}"
4
+ >
5
+ <slot />
6
+ </view>
@@ -0,0 +1,7 @@
1
+ .container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ overflow: auto;
5
+ position: absolute;
6
+ width: 100%;
7
+ }
@@ -0,0 +1,92 @@
1
+ Component({
2
+ externalClasses: ['custom-class'],
3
+
4
+ options: {
5
+ addGlobalClass: true,
6
+ },
7
+
8
+ properties: {
9
+ // ghost, primary, info, success, warning, error
10
+ type: {
11
+ type: String,
12
+ value: 'default',
13
+ },
14
+ plain: {
15
+ type: Boolean,
16
+ value: false,
17
+ },
18
+ inline: {
19
+ type: Boolean,
20
+ value: false
21
+ },
22
+ size: {
23
+ type: String,
24
+ value: '',
25
+ },
26
+ round: {
27
+ type: Boolean,
28
+ value: false
29
+ },
30
+ disabled: {
31
+ type: Boolean,
32
+ value: false,
33
+ },
34
+ loading: {
35
+ type: Boolean,
36
+ value: false,
37
+ },
38
+ full: {
39
+ type: Boolean,
40
+ value: false
41
+ },
42
+ color: {
43
+ type: String,
44
+ value: ''
45
+ },
46
+ bgcolor: {
47
+ type: String,
48
+ value: ''
49
+ },
50
+ openType: String,
51
+ hoverStopPropagation: Boolean,
52
+ hoverStartTime: {
53
+ type: Number,
54
+ value: 20
55
+ },
56
+ hoverStayTime: {
57
+ type: Number,
58
+ value: 70
59
+ },
60
+ sendMessageTitle: String,
61
+ sendMessagePath: String,
62
+ sendMessageImg: String,
63
+ showMessageCard: Boolean
64
+ },
65
+
66
+ methods: {
67
+ onTap() {
68
+ if (this.data.disabled) return false
69
+ this.triggerEvent('click')
70
+ },
71
+ getuserinfo({
72
+ detail = {}
73
+ } = {}) {
74
+ this.triggerEvent('getuserinfo', detail)
75
+ },
76
+ contact({
77
+ detail = {}
78
+ } = {}) {
79
+ this.triggerEvent('contact', detail)
80
+ },
81
+ getphonenumber({
82
+ detail = {}
83
+ } = {}) {
84
+ this.triggerEvent('getphonenumber', detail)
85
+ },
86
+ error({
87
+ detail = {}
88
+ } = {}) {
89
+ this.triggerEvent('error', detail)
90
+ }
91
+ }
92
+ });
@@ -0,0 +1,3 @@
1
+ {
2
+ "component": true
3
+ }
@@ -0,0 +1,207 @@
1
+ .m-button {
2
+ position: relative;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ margin: 10px;
7
+ padding: 0 27rpx;
8
+ width: auto;
9
+ height: 86rpx;
10
+ line-height: 86rpx;
11
+ text-align: center;
12
+ vertical-align: middle;
13
+ white-space: nowrap;
14
+ letter-spacing: 4rpx;
15
+ font-size: 28rpx;
16
+ font-weight: normal;
17
+ border-radius: 6rpx;
18
+ border: 0 !important;
19
+ color: var(--color-text-primary, #303133);
20
+ overflow: visible;
21
+ box-sizing: border-box;
22
+ background-color: #fff;
23
+ transition: opacity .16s, background-color .16s;
24
+
25
+ .m-button__icon {
26
+ font-size: 28rpx;
27
+ width: 24rpx;
28
+ height: 24rpx;
29
+ }
30
+
31
+ &.is-hover {
32
+ opacity: 0.8;
33
+ }
34
+
35
+ &:not(.is-disabled).is-plain--hover::before,
36
+ &:not(.is-loading).is-plain--hover::before {
37
+ display: block;
38
+ position: absolute;
39
+ left: 0;
40
+ right: 0;
41
+ top: 0;
42
+ bottom: 0;
43
+ opacity: .15;
44
+ content: " ";
45
+ background-color: currentColor;
46
+ }
47
+
48
+ &.is-round.is-plain--hover::before {
49
+ border-radius: 100rpx;
50
+ }
51
+
52
+ &.m-button--full {
53
+ margin: 0;
54
+ border-radius: 0;
55
+ box-shadow: none;
56
+ }
57
+
58
+ &.m-button--large {
59
+ padding: 0 32rpx;
60
+ height: 96rpx;
61
+ line-height: 96rpx;
62
+ font-size: 32rpx;
63
+ }
64
+
65
+ &.m-button--small {
66
+ padding: 0 18rpx;
67
+ height: 68rpx;
68
+ line-height: 68rpx;
69
+ }
70
+
71
+ &.m-button--primary {
72
+ color: #fff;
73
+ background-color: var(--color-primary, #409EFF);
74
+ }
75
+
76
+ &.m-button--default {
77
+ background-color: transparent;
78
+ color: var(--color-text-primary, #303133);
79
+
80
+ &::after {
81
+ content: " ";
82
+ display: block;
83
+ width: 200%;
84
+ height: 200%;
85
+ z-index: 1;
86
+ position: absolute;
87
+ top: 0;
88
+ left: 0;
89
+ border: 1px solid #dcdfe6;
90
+ transform: scale(0.5);
91
+ transform-origin: 0 0;
92
+ box-sizing: border-box;
93
+ border-radius: 6rpx;
94
+ pointer-events: none;
95
+ }
96
+
97
+ &.is-hover {
98
+ background-color: rgba(0, 0, 0, .07);
99
+ }
100
+ }
101
+
102
+ &.m-button--ghost {
103
+ background-color: transparent;
104
+ color: var(--color-text-primary, #303133);
105
+ }
106
+
107
+ &.m-button--success {
108
+ color: #fff;
109
+ background-color: var(--color-success, #67C23A);
110
+ }
111
+
112
+ &.m-button--warning {
113
+ color: #fff;
114
+ background-color: var(--color-warning, #E6A23C);
115
+ }
116
+
117
+ &.m-button--danger {
118
+ color: #fff;
119
+ background-color: var(--color-danger, #F56C6C);
120
+ }
121
+
122
+ &.m-button--info {
123
+ color: #fff;
124
+ background-color: var(--color-info, #909399);
125
+ }
126
+
127
+ /* plain */
128
+
129
+ .m-button--primary.is-plain {
130
+ color: var(--color-primary, #409EFF);
131
+ background-color: #fff;
132
+ }
133
+
134
+ .m-button--success.is-plain {
135
+ color: var(--color-success, #67C23A);
136
+ background-color: #fff;
137
+ }
138
+
139
+ .m-button--warning.is-plain {
140
+ color: var(--color-warning, #E6A23C);
141
+ background-color: #fff;
142
+ }
143
+
144
+ .m-button--danger.is-plain {
145
+ color: var(--color-danger, #F56C6C);
146
+ background-color: #fff;
147
+ }
148
+
149
+ .m-button--info.is-plain {
150
+ color: var(--color-info, #909399);
151
+ background-color: #fff;
152
+ }
153
+
154
+ &.is-plain::after {
155
+ content: " ";
156
+ display: block;
157
+ width: 200%;
158
+ height: 200%;
159
+ position: absolute;
160
+ top: 0;
161
+ left: 0;
162
+ border: 1px solid currentColor;
163
+ transform: scale(0.5);
164
+ transform-origin: 0 0;
165
+ box-sizing: border-box;
166
+ border-radius: 6rpx;
167
+ z-index: 1;
168
+ pointer-events: none;
169
+ }
170
+
171
+ &.is-round {
172
+ border-radius: 100rpx;
173
+ }
174
+
175
+ &.is-round.is-plain::after {
176
+ border-radius: 100rpx;
177
+ }
178
+
179
+ &.is-loading {
180
+ opacity: 0.85;
181
+ }
182
+
183
+ .m-button__loading {
184
+ width: 32rpx;
185
+ height: 32rpx;
186
+ background-color: 0 0;
187
+ border-radius: 50%;
188
+ border: 4rpx solid currentColor;
189
+ border-left-color: transparent;
190
+ animation: btn-spinner 0.8s linear;
191
+ animation-iteration-count: infinite;
192
+ }
193
+
194
+ &.is-disabled {
195
+ opacity: 0.65;
196
+ }
197
+
198
+ &.is-inline {
199
+ display: inline-flex;
200
+ }
201
+
202
+ @keyframes btn-spinner {
203
+ 100% {
204
+ transform: rotate(360deg);
205
+ }
206
+ }
207
+ }
@@ -0,0 +1,42 @@
1
+ <button
2
+ class="m-button {{ full ? 'm-button--full' : '' }} {{ size ? 'm-button--' + size : '' }} {{ 'm-button--' + type }} {{ round ? 'is-round' : '' }} {{ plain ? 'is-plain' : '' }} {{ loading ? 'is-loading' : '' }} {{ disabled ? 'is-disabled' : ''}} {{ inline ? 'is-inline' : '' }} custom-class"
3
+ style="{{ button.getButtonStyle(color, bgcolor) }}"
4
+ hover-class="{{ loading || disabled ? '' : plain ? 'is-plain--hover' : 'is-hover' }}"
5
+ bind:tap="onTap"
6
+ open-type="{{ openType }}"
7
+ hover-stop-propagation="{{ hoverStopPropagation }}"
8
+ hover-start-time="{{ hoverStartTime }}"
9
+ hover-stay-time="{{ hoverStayTime }}"
10
+ send-message-title="{{ sendMessageTitle }}"
11
+ send-message-path="{{ sendMessagePath }}"
12
+ send-message-img="{{ sendMessageImg }}"
13
+ show-message-card="{{ showMessageCard }}"
14
+ bindcontact="contact"
15
+ bindgetuserinfo="getuserinfo"
16
+ bindgetphonenumber="getphonenumber"
17
+ binderror="error"
18
+ plain="true"
19
+ >
20
+ <view wx:if="{{ loading }}" class="m-button__loading"></view>
21
+ <slot wx:else />
22
+ </button>
23
+
24
+ <wxs module="button">
25
+ function getButtonStyle(color, bgcolor) {
26
+
27
+ var styles = []
28
+ if(color) {
29
+ styles.push('color:' + color)
30
+ }
31
+
32
+ if(bgcolor) {
33
+ styles.push('background-color:' + bgcolor)
34
+ }
35
+
36
+ return styles.join(";")
37
+ }
38
+
39
+ module.exports = {
40
+ getButtonStyle: getButtonStyle
41
+ }
42
+ </wxs>
@@ -0,0 +1,176 @@
1
+ .m-button {
2
+ position: relative;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ margin: 10px;
7
+ padding: 0 27rpx;
8
+ width: auto;
9
+ height: 86rpx;
10
+ line-height: 86rpx;
11
+ text-align: center;
12
+ vertical-align: middle;
13
+ white-space: nowrap;
14
+ letter-spacing: 4rpx;
15
+ font-size: 28rpx;
16
+ font-weight: normal;
17
+ border-radius: 6rpx;
18
+ border: 0 !important;
19
+ color: var(--color-text-primary, #303133);
20
+ overflow: visible;
21
+ box-sizing: border-box;
22
+ background-color: #fff;
23
+ transition: opacity 0.16s, background-color 0.16s;
24
+ /* plain */
25
+ }
26
+ .m-button .m-button__icon {
27
+ font-size: 28rpx;
28
+ width: 24rpx;
29
+ height: 24rpx;
30
+ }
31
+ .m-button.is-hover {
32
+ opacity: 0.8;
33
+ }
34
+ .m-button:not(.is-disabled).is-plain--hover::before, .m-button:not(.is-loading).is-plain--hover::before {
35
+ display: block;
36
+ position: absolute;
37
+ left: 0;
38
+ right: 0;
39
+ top: 0;
40
+ bottom: 0;
41
+ opacity: 0.15;
42
+ content: " ";
43
+ background-color: currentColor;
44
+ }
45
+ .m-button.is-round.is-plain--hover::before {
46
+ border-radius: 100rpx;
47
+ }
48
+ .m-button.m-button--full {
49
+ margin: 0;
50
+ border-radius: 0;
51
+ box-shadow: none;
52
+ }
53
+ .m-button.m-button--large {
54
+ padding: 0 32rpx;
55
+ height: 96rpx;
56
+ line-height: 96rpx;
57
+ font-size: 32rpx;
58
+ }
59
+ .m-button.m-button--small {
60
+ padding: 0 18rpx;
61
+ height: 68rpx;
62
+ line-height: 68rpx;
63
+ }
64
+ .m-button.m-button--primary {
65
+ color: #fff;
66
+ background-color: var(--color-primary, #409EFF);
67
+ }
68
+ .m-button.m-button--default {
69
+ background-color: transparent;
70
+ color: var(--color-text-primary, #303133);
71
+ }
72
+ .m-button.m-button--default::after {
73
+ content: " ";
74
+ display: block;
75
+ width: 200%;
76
+ height: 200%;
77
+ z-index: 1;
78
+ position: absolute;
79
+ top: 0;
80
+ left: 0;
81
+ border: 1px solid #dcdfe6;
82
+ transform: scale(0.5);
83
+ transform-origin: 0 0;
84
+ box-sizing: border-box;
85
+ border-radius: 6rpx;
86
+ pointer-events: none;
87
+ }
88
+ .m-button.m-button--default.is-hover {
89
+ background-color: rgba(0, 0, 0, 0.07);
90
+ }
91
+ .m-button.m-button--ghost {
92
+ background-color: transparent;
93
+ color: var(--color-text-primary, #303133);
94
+ }
95
+ .m-button.m-button--success {
96
+ color: #fff;
97
+ background-color: var(--color-success, #67C23A);
98
+ }
99
+ .m-button.m-button--warning {
100
+ color: #fff;
101
+ background-color: var(--color-warning, #E6A23C);
102
+ }
103
+ .m-button.m-button--danger {
104
+ color: #fff;
105
+ background-color: var(--color-danger, #F56C6C);
106
+ }
107
+ .m-button.m-button--info {
108
+ color: #fff;
109
+ background-color: var(--color-info, #909399);
110
+ }
111
+ .m-button .m-button--primary.is-plain {
112
+ color: var(--color-primary, #409EFF);
113
+ background-color: #fff;
114
+ }
115
+ .m-button .m-button--success.is-plain {
116
+ color: var(--color-success, #67C23A);
117
+ background-color: #fff;
118
+ }
119
+ .m-button .m-button--warning.is-plain {
120
+ color: var(--color-warning, #E6A23C);
121
+ background-color: #fff;
122
+ }
123
+ .m-button .m-button--danger.is-plain {
124
+ color: var(--color-danger, #F56C6C);
125
+ background-color: #fff;
126
+ }
127
+ .m-button .m-button--info.is-plain {
128
+ color: var(--color-info, #909399);
129
+ background-color: #fff;
130
+ }
131
+ .m-button.is-plain::after {
132
+ content: " ";
133
+ display: block;
134
+ width: 200%;
135
+ height: 200%;
136
+ position: absolute;
137
+ top: 0;
138
+ left: 0;
139
+ border: 1px solid currentColor;
140
+ transform: scale(0.5);
141
+ transform-origin: 0 0;
142
+ box-sizing: border-box;
143
+ border-radius: 6rpx;
144
+ z-index: 1;
145
+ pointer-events: none;
146
+ }
147
+ .m-button.is-round {
148
+ border-radius: 100rpx;
149
+ }
150
+ .m-button.is-round.is-plain::after {
151
+ border-radius: 100rpx;
152
+ }
153
+ .m-button.is-loading {
154
+ opacity: 0.85;
155
+ }
156
+ .m-button .m-button__loading {
157
+ width: 32rpx;
158
+ height: 32rpx;
159
+ background-color: 0 0;
160
+ border-radius: 50%;
161
+ border: 4rpx solid currentColor;
162
+ border-left-color: transparent;
163
+ animation: btn-spinner 0.8s linear;
164
+ animation-iteration-count: infinite;
165
+ }
166
+ .m-button.is-disabled {
167
+ opacity: 0.65;
168
+ }
169
+ .m-button.is-inline {
170
+ display: inline-flex;
171
+ }
172
+ @keyframes btn-spinner {
173
+ 100% {
174
+ transform: rotate(360deg);
175
+ }
176
+ }