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,81 @@
1
+ Component({
2
+ externalClasses: ['custom-class'],
3
+
4
+ options: {
5
+ addGlobalClass: true,
6
+ },
7
+
8
+ relations: {
9
+ '../cell-group/index': {
10
+ type: 'ancestor'
11
+ }
12
+ },
13
+
14
+ properties: {
15
+ icon: {
16
+ type: String,
17
+ value: ''
18
+ },
19
+
20
+ image: {
21
+ type: String,
22
+ value: ''
23
+ },
24
+
25
+ title: {
26
+ type: String,
27
+ value: ''
28
+ },
29
+
30
+ value: {
31
+ type: String,
32
+ value: ''
33
+ },
34
+
35
+ isMultiple: {
36
+ type: Boolean,
37
+ value: false
38
+ },
39
+
40
+ border: {
41
+ type: Boolean,
42
+ value: false
43
+ },
44
+
45
+ iconColor: {
46
+ type: String,
47
+ value: ''
48
+ },
49
+
50
+ // 链接类型,可选值为 navigateTo,redirectTo,switchTab
51
+ linkType: {
52
+ type: String,
53
+ value: 'navigateTo'
54
+ },
55
+
56
+ url: {
57
+ type: String,
58
+ value: ''
59
+ }
60
+ },
61
+
62
+
63
+ methods: {
64
+ updateCellBorder(border) {
65
+ this.setData({
66
+ border
67
+ })
68
+ },
69
+
70
+ onClick() {
71
+ this.triggerEvent('click')
72
+
73
+ const url = this.data.url
74
+ if (!url) return
75
+
76
+ wx[this.data.linkType].call(wx, {
77
+ url
78
+ })
79
+ }
80
+ }
81
+ });
@@ -0,0 +1,6 @@
1
+ {
2
+ "component": true,
3
+ "usingComponents": {
4
+ "m-icon": "../icon/index"
5
+ }
6
+ }
@@ -0,0 +1,74 @@
1
+ .m-cell {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ position: relative;
6
+ padding: 20rpx 32rpx;
7
+ line-height: 54rpx;
8
+ font-size: 28rpx;
9
+
10
+ &.m-cell__hairline {
11
+ &::after {
12
+ position: absolute;
13
+ box-sizing: border-box;
14
+ content: " ";
15
+ pointer-events: none;
16
+ right: 32rpx;
17
+ bottom: 0;
18
+ left: 32rpx;
19
+ border-bottom: 1px solid var(--color-border, #dcdee2);
20
+ transform: scaleY(0.5);
21
+ }
22
+ }
23
+
24
+ &.m-cell--hover {
25
+ background-color: #f7f8f9;
26
+ }
27
+
28
+ .m-cell__icon {
29
+ width: 38rpx;
30
+ text-align: center;
31
+ }
32
+
33
+ .m-cell__header {
34
+ margin-right: 12rpx;
35
+ display: flex;
36
+ align-items: center;
37
+ }
38
+
39
+ .m-cell__title {
40
+ display: flex;
41
+ align-items: center;
42
+ flex: 1;
43
+ color: var(--color-text-primary, #303133);
44
+ vertical-align: middle;
45
+ overflow: hidden;
46
+ text-overflow: ellipsis;
47
+ white-space: nowrap;
48
+ }
49
+
50
+ .m-cell__desc {
51
+ display: flex;
52
+ align-items: center;
53
+ margin-left: 20rpx;
54
+ max-width: 400rpx;
55
+ color: var(--color-text-secondary, #909399);
56
+ font-size: 28rpx;
57
+
58
+ &.is-ellipsis {
59
+ overflow: hidden;
60
+ text-overflow: ellipsis;
61
+ white-space: nowrap;
62
+ }
63
+ }
64
+
65
+ .m-cell__slot {
66
+ display: inline-flex;
67
+ align-items: center;
68
+ }
69
+
70
+ .m-cell__footer {
71
+ text-align: right;
72
+ margin-left: 24rpx;
73
+ }
74
+ }
@@ -0,0 +1,25 @@
1
+ <view
2
+ bindtap="onClick"
3
+ class="m-cell custom-class {{ border ? 'm-cell__hairline':'' }}"
4
+ hover-class="{{ url ? 'm-cell--hover' : '' }}"
5
+ >
6
+ <!-- 头部图标 -->
7
+ <view wx:if="{{ icon }}" class="m-cell__icon m-cell__header">
8
+ <m-icon name="{{ icon }}" size="36" color="{{ iconColor ? iconColor : '' }}" />
9
+ </view>
10
+
11
+ <!-- 自定义标题 -->
12
+ <view wx:if="{{ title }}" class="m-cell__title">{{ title }}</view>
13
+ <slot wx:else name="title" />
14
+
15
+ <!-- 描述内容 -->
16
+ <view wx:if="{{ value }}" class="m-cell__desc {{ isMultiple ? '':'is-ellipsis' }}">{{ value }}</view>
17
+
18
+ <!-- 自定义内容 -->
19
+ <view wx:else class="m-cell__slot">
20
+ <slot />
21
+ </view>
22
+
23
+ <!-- 右侧跳转箭头 -->
24
+ <m-icon wx:if="{{ url }}" class="m-cell__icon m-cell__footer" catchtap="navigateTo" name="arrow-right" size="32" color="#999" />
25
+ </view>
@@ -0,0 +1,63 @@
1
+ .m-cell {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ position: relative;
6
+ padding: 20rpx 32rpx;
7
+ line-height: 54rpx;
8
+ font-size: 28rpx;
9
+ }
10
+ .m-cell.m-cell__hairline::after {
11
+ position: absolute;
12
+ box-sizing: border-box;
13
+ content: " ";
14
+ pointer-events: none;
15
+ right: 32rpx;
16
+ bottom: 0;
17
+ left: 32rpx;
18
+ border-bottom: 1px solid var(--color-border, #dcdee2);
19
+ transform: scaleY(0.5);
20
+ }
21
+ .m-cell.m-cell--hover {
22
+ background-color: #f7f8f9;
23
+ }
24
+ .m-cell .m-cell__icon {
25
+ width: 38rpx;
26
+ text-align: center;
27
+ }
28
+ .m-cell .m-cell__header {
29
+ margin-right: 12rpx;
30
+ display: flex;
31
+ align-items: center;
32
+ }
33
+ .m-cell .m-cell__title {
34
+ display: flex;
35
+ align-items: center;
36
+ flex: 1;
37
+ color: var(--color-text-primary, #303133);
38
+ vertical-align: middle;
39
+ overflow: hidden;
40
+ text-overflow: ellipsis;
41
+ white-space: nowrap;
42
+ }
43
+ .m-cell .m-cell__desc {
44
+ display: flex;
45
+ align-items: center;
46
+ margin-left: 20rpx;
47
+ max-width: 400rpx;
48
+ color: var(--color-text-secondary, #909399);
49
+ font-size: 28rpx;
50
+ }
51
+ .m-cell .m-cell__desc.is-ellipsis {
52
+ overflow: hidden;
53
+ text-overflow: ellipsis;
54
+ white-space: nowrap;
55
+ }
56
+ .m-cell .m-cell__slot {
57
+ display: inline-flex;
58
+ align-items: center;
59
+ }
60
+ .m-cell .m-cell__footer {
61
+ text-align: right;
62
+ margin-left: 24rpx;
63
+ }
@@ -0,0 +1,71 @@
1
+ Component({
2
+ externalClasses: ['custom-class'],
3
+
4
+ options: {
5
+ addGlobalClass: true,
6
+ multipleSlots: true
7
+ },
8
+
9
+ relations: {
10
+ '../cell/index': {
11
+ type: 'descendant',
12
+
13
+ linked() {
14
+ this._updateChildren()
15
+ },
16
+
17
+ linkChanged() {
18
+ this._updateDataChange();
19
+ },
20
+
21
+ unlinked() {
22
+ this._updateChildren()
23
+ }
24
+ }
25
+ },
26
+
27
+ properties: {
28
+ title: {
29
+ type: String,
30
+ value: ''
31
+ },
32
+
33
+ card: {
34
+ type: Boolean,
35
+ value: false
36
+ },
37
+
38
+ border: {
39
+ type: Boolean,
40
+ value: false,
41
+ observer(val) {
42
+ this._updateChildren()
43
+ }
44
+ }
45
+ },
46
+
47
+ methods: {
48
+ _updateChildren() {
49
+
50
+ // 防抖减少重复触发
51
+ if (this.timer) {
52
+ clearTimeout(this.timer)
53
+ this.timer = null
54
+ }
55
+
56
+ this.timer = setTimeout(() => {
57
+
58
+ let cells = this.getRelationNodes('../cell/index')
59
+ const len = cells.length
60
+
61
+ if (len > 0) {
62
+ let lastIndex = len - 1
63
+
64
+ cells.forEach((cell, index) => {
65
+ cell.updateCellBorder(this.data.border && index !== lastIndex)
66
+ })
67
+ }
68
+ }, 60)
69
+ }
70
+ }
71
+ })
@@ -0,0 +1,3 @@
1
+ {
2
+ "component": true
3
+ }
@@ -0,0 +1,32 @@
1
+ .m-cell-group {
2
+ position: relative;
3
+ margin: 0;
4
+ background: #fff;
5
+ transition: margin .2s ease-in-out;
6
+
7
+ &.m-cell-group--card {
8
+ margin: 32rpx;
9
+ border-radius: 12rpx;
10
+ overflow: hidden;
11
+ }
12
+
13
+ .m-cell-group__header {
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: space-between;
17
+ flex-shrink: 0;
18
+ position: relative;
19
+ padding: 0 32rpx;
20
+ height: 100rpx;
21
+ font-size: 32rpx;
22
+ color: var(--color-text-regular, #606266);
23
+ background-color: #fcfcfc;
24
+
25
+ .m-cell-group__title {
26
+ flex: 1;
27
+ overflow: hidden;
28
+ text-overflow: ellipsis;
29
+ white-space: nowrap;
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,10 @@
1
+ <view class="custom-class m-cell-group {{ card ? 'm-cell-group--card':'' }}">
2
+ <view wx:if="{{ title }}" class="m-cell-group__header">
3
+ <view class="m-cell-group__title">{{ title }}</view>
4
+ <slot name="group-suffix" />
5
+ </view>
6
+
7
+ <view class="m-cell-group__list">
8
+ <slot />
9
+ </view>
10
+ </view>
@@ -0,0 +1,29 @@
1
+ .m-cell-group {
2
+ position: relative;
3
+ margin: 0;
4
+ background: #fff;
5
+ transition: margin 0.2s ease-in-out;
6
+ }
7
+ .m-cell-group.m-cell-group--card {
8
+ margin: 32rpx;
9
+ border-radius: 12rpx;
10
+ overflow: hidden;
11
+ }
12
+ .m-cell-group .m-cell-group__header {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: space-between;
16
+ flex-shrink: 0;
17
+ position: relative;
18
+ padding: 0 32rpx;
19
+ height: 100rpx;
20
+ font-size: 32rpx;
21
+ color: var(--color-text-regular, #606266);
22
+ background-color: #fcfcfc;
23
+ }
24
+ .m-cell-group .m-cell-group__header .m-cell-group__title {
25
+ flex: 1;
26
+ overflow: hidden;
27
+ text-overflow: ellipsis;
28
+ white-space: nowrap;
29
+ }
@@ -0,0 +1,67 @@
1
+ Component({
2
+
3
+ options: {
4
+ addGlobalClass: true,
5
+ },
6
+
7
+ relations: {
8
+ '../grid-item/index': {
9
+ type: 'child',
10
+ linked() {
11
+ this._updateChildren()
12
+ },
13
+ unlinked() {
14
+ this._updateChildren()
15
+ }
16
+ }
17
+ },
18
+
19
+ properties: {
20
+ height: {
21
+ type: String,
22
+ value: 'auto',
23
+ observer: '_updateChildren'
24
+ },
25
+
26
+ columnCount: {
27
+ type: Number,
28
+ value: 4,
29
+ observer: '_updateChildren'
30
+ },
31
+
32
+ border: {
33
+ type: Boolean,
34
+ value: false,
35
+ observer: '_updateChildren'
36
+ }
37
+ },
38
+
39
+ methods: {
40
+ _updateChildren() {
41
+
42
+ // 防抖减少重复触发
43
+ if (this.timer) {
44
+ clearTimeout(this.timer)
45
+ this.timer = null
46
+ }
47
+
48
+ this.timer = setTimeout(() => {
49
+
50
+ let children = this.getRelationNodes('../grid-item/index')
51
+ const len = children.length
52
+
53
+ const width = `${100 / this.data.columnCount}%`;
54
+
55
+ if (len > 0) {
56
+ children.forEach((child, index) => {
57
+ child.setData({
58
+ width,
59
+ height: this.data.height,
60
+ border: this.data.border
61
+ })
62
+ })
63
+ }
64
+ }, 60)
65
+ }
66
+ }
67
+ })
@@ -0,0 +1,4 @@
1
+ {
2
+ "component": true,
3
+ "usingComponents": {}
4
+ }
@@ -0,0 +1,21 @@
1
+ .m-grid {
2
+ position: relative;
3
+ width: 100%;
4
+ box-sizing: border-box;
5
+ overflow: hidden;
6
+
7
+ &.m-grid--border::after {
8
+ content: " ";
9
+ position: absolute;
10
+ top: 0;
11
+ left: 0;
12
+ width: 200%;
13
+ height: 200%;
14
+ transform: scale(0.5);
15
+ transform-origin: 0 0;
16
+ box-sizing: border-box;
17
+ border: 1px solid transparent;
18
+ border-top-color: var(--color-border, #dcdee2);
19
+ border-left-color: var(--color-border, #dcdee2);
20
+ }
21
+ }
@@ -0,0 +1,3 @@
1
+ <view class="m-grid {{ border ? 'm-grid--border' : '' }}">
2
+ <slot />
3
+ </view>
@@ -0,0 +1,20 @@
1
+ .m-grid {
2
+ position: relative;
3
+ width: 100%;
4
+ box-sizing: border-box;
5
+ overflow: hidden;
6
+ }
7
+ .m-grid.m-grid--border::after {
8
+ content: " ";
9
+ position: absolute;
10
+ top: 0;
11
+ left: 0;
12
+ width: 200%;
13
+ height: 200%;
14
+ transform: scale(0.5);
15
+ transform-origin: 0 0;
16
+ box-sizing: border-box;
17
+ border: 1px solid transparent;
18
+ border-top-color: var(--color-border, #dcdee2);
19
+ border-left-color: var(--color-border, #dcdee2);
20
+ }
@@ -0,0 +1,72 @@
1
+ Component({
2
+ options: {
3
+ addGlobalClass: true,
4
+ },
5
+
6
+ relations: {
7
+ '../grid/index': {
8
+ type: 'parent'
9
+ }
10
+ },
11
+
12
+ properties: {
13
+ icon: {
14
+ type: String,
15
+ value: ''
16
+ },
17
+ iconColor: {
18
+ type: String,
19
+ value: ''
20
+ },
21
+ iconSize: {
22
+ type: Number,
23
+ value: 48
24
+ },
25
+ badgeDot: {
26
+ type: Boolean,
27
+ value: false
28
+ },
29
+ badgeValue: {
30
+ type: String,
31
+ optionalTypes: [Number, String],
32
+ value: ''
33
+ },
34
+ text: {
35
+ type: String,
36
+ value: ''
37
+ },
38
+ useSlot: {
39
+ type: Boolean,
40
+ value: false
41
+ },
42
+
43
+ // 链接类型,可选值为 navigateTo,redirectTo,switchTab
44
+ linkType: {
45
+ type: String,
46
+ value: 'navigateTo'
47
+ },
48
+ url: {
49
+ type: String,
50
+ value: ''
51
+ }
52
+ },
53
+
54
+ data: {
55
+ width: '',
56
+ height: '',
57
+ border: false
58
+ },
59
+
60
+ methods: {
61
+ onClick() {
62
+ this.triggerEvent('click')
63
+
64
+ const url = this.data.url
65
+ if (!url) return
66
+
67
+ wx[this.data.linkType].call(wx, {
68
+ url
69
+ })
70
+ }
71
+ }
72
+ })
@@ -0,0 +1,6 @@
1
+ {
2
+ "component": true,
3
+ "usingComponents": {
4
+ "m-icon": "../icon/index"
5
+ }
6
+ }
@@ -0,0 +1,59 @@
1
+ .m-grid-item {
2
+ position: relative;
3
+ float: left;
4
+ box-sizing: border-box;
5
+ background-color: #fff;
6
+
7
+ &.m-grid-item--hover {
8
+ background-color: #f3f4f5;
9
+ }
10
+
11
+ .m-grid-item__content {
12
+ display: flex;
13
+ flex-direction: column;
14
+ justify-content: center;
15
+ align-items: center;
16
+ height: 100%;
17
+ padding: 32rpx 16rpx;
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ .m-grid-item__content--border:after {
22
+ content: " ";
23
+ z-index: 1;
24
+ position: absolute;
25
+ top: 0;
26
+ left: 0;
27
+ width: 200%;
28
+ height: 200%;
29
+ transform: scale(0.5);
30
+ transform-origin: 0 0;
31
+ box-sizing: border-box;
32
+ border: 1px solid transparent;
33
+ border-right-color: var(--color-border, #dcdee2);
34
+ border-bottom-color: var(--color-border, #dcdee2);
35
+ }
36
+
37
+
38
+ .m-grid-item__content--clickable:active {
39
+ background-color: #f3f4f5;
40
+ }
41
+
42
+ .m-grid-item__icon {
43
+ font-size: 52rpx;
44
+ position: relative;
45
+ }
46
+
47
+ .m-grid-item__badge {
48
+ position: absolute !important;
49
+ }
50
+
51
+ .m-grid-item__text {
52
+ word-wrap: break-word;
53
+ color: var(--color-text-regular, #606266);
54
+ font-size: 28rpx;
55
+ white-space: nowrap;
56
+ overflow: hidden;
57
+ text-overflow: ellipsis;
58
+ }
59
+ }
@@ -0,0 +1,46 @@
1
+ <view
2
+ class="m-grid-item"
3
+ hover-class="{{ url ? 'm-grid-item--hover' : '' }}"
4
+ style="{{ grid.getItemStyle(width, height) }}"
5
+ bind:tap="onClick"
6
+ >
7
+ <view class="m-grid-item__content {{ border ? 'm-grid-item__content--border' : '' }}">
8
+
9
+ <block wx:if="{{ useSlot }}">
10
+ <slot />
11
+ </block>
12
+
13
+ <block wx:else>
14
+ <view class="m-grid-item__icon">
15
+ <m-icon wx:if="{{ icon }}" name="{{ icon }}" color="{{ iconColor }}" size="{{ iconSize }}" dot="{{ dot }}" info="{{ info }}" />
16
+ <slot wx:else name="icon" />
17
+
18
+ </view>
19
+
20
+ <view class="m-grid-item__text">
21
+ <text wx:if="{{ text }}">{{ text }}</text>
22
+ <slot wx:else name="text" />
23
+ </view>
24
+ </block>
25
+
26
+ </view>
27
+ </view>
28
+
29
+ <wxs module="grid">
30
+ function getItemStyle(width, height) {
31
+ var styles = []
32
+ if(width) {
33
+ styles.push('width:' + width)
34
+ }
35
+
36
+ if(height) {
37
+ styles.push('height:' + height)
38
+ }
39
+
40
+ return styles.join(";")
41
+ }
42
+
43
+ module.exports = {
44
+ getItemStyle: getItemStyle
45
+ }
46
+ </wxs>