@10yun/cv-mobile-ui 0.5.27 → 0.5.30

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 (918) hide show
  1. package/build/parse-pages.js +50 -14
  2. package/build/parse-pages2.js +11 -10
  3. package/other/uParse/components/wxParseAudio.vue +1 -1
  4. package/other/uParse/components/wxParseVideo.vue +1 -1
  5. package/package.json +1 -1
  6. package/plugins/luch-request/adapters/index.js +131 -0
  7. package/plugins/luch-request/core/InterceptorManager.js +50 -0
  8. package/plugins/luch-request/core/Request.js +199 -0
  9. package/plugins/luch-request/core/buildFullPath.js +20 -0
  10. package/plugins/luch-request/core/defaults.js +32 -0
  11. package/plugins/luch-request/core/dispatchRequest.js +5 -0
  12. package/plugins/luch-request/core/mergeConfig.js +125 -0
  13. package/plugins/luch-request/core/settle.js +16 -0
  14. package/plugins/luch-request/helpers/buildURL.js +71 -0
  15. package/plugins/luch-request/helpers/combineURLs.js +12 -0
  16. package/plugins/luch-request/helpers/isAbsoluteURL.js +14 -0
  17. package/plugins/luch-request/index.d.ts +197 -0
  18. package/plugins/luch-request/index.js +2 -0
  19. package/plugins/luch-request/readme.md +3 -0
  20. package/plugins/luch-request/utils/clone.js +264 -0
  21. package/plugins/luch-request/utils.js +131 -0
  22. package/plugins/request.js +84 -69
  23. package/ui-cv/components/cv-btn-base/cv-btn-base.vue +66 -14
  24. package/ui-cv/components/cv-code-sms/cv-code-sms.vue +22 -15
  25. package/ui-cv/components/cv-date-base/cv-date-base.vue +1 -1
  26. package/ui-cv/components/cv-form-item/cv-form-item.vue +1 -1
  27. package/ui-cv/components/cv-input-text/input.css +13 -0
  28. package/ui-cv/components/cv-picker1/cv-picker1.vue +1 -1
  29. package/ui-fireui/fui-actionsheet/fui-actionsheet.vue +202 -0
  30. package/ui-fireui/fui-alert/fui-alert.vue +141 -0
  31. package/ui-fireui/fui-badge/fui-badge.vue +158 -0
  32. package/ui-fireui/fui-bottom-navigation/fui-bottom-navigation.vue +390 -0
  33. package/ui-fireui/fui-bottom-popup/fui-bottom-popup.vue +100 -0
  34. package/ui-fireui/fui-bubble-popup/fui-bubble-popup.vue +236 -0
  35. package/ui-fireui/fui-button/fui-button.vue +424 -0
  36. package/ui-fireui/fui-calendar/fui-calendar.js +915 -0
  37. package/ui-fireui/fui-calendar/fui-calendar.vue +868 -0
  38. package/ui-fireui/fui-card/fui-card.vue +231 -0
  39. package/ui-fireui/fui-cascade-selection/fui-cascade-selection.vue +538 -0
  40. package/ui-fireui/fui-circular-progress/fui-circular-progress.vue +261 -0
  41. package/ui-fireui/fui-collapse/fui-collapse.vue +179 -0
  42. package/ui-fireui/fui-countdown/fui-countdown.vue +301 -0
  43. package/ui-fireui/fui-datetime/fui-datetime.vue +570 -0
  44. package/ui-fireui/fui-divider/fui-divider.vue +118 -0
  45. package/ui-fireui/fui-drawer/fui-drawer.vue +103 -0
  46. package/ui-fireui/fui-dropdown-list/fui-dropdown-list.vue +70 -0
  47. package/ui-fireui/fui-fab/fui-fab.vue +284 -0
  48. package/ui-fireui/fui-footer/fui-footer.vue +131 -0
  49. package/ui-fireui/fui-grid/fui-grid.vue +42 -0
  50. package/ui-fireui/fui-grid-item/fui-grid-item.vue +142 -0
  51. package/ui-fireui/fui-icon/fui-icon.vue +820 -0
  52. package/ui-fireui/fui-image-cropper/fui-image-cropper.vue +1058 -0
  53. package/ui-fireui/fui-image-group/fui-image-group.vue +149 -0
  54. package/ui-fireui/fui-keyboard/fui-keyboard.vue +254 -0
  55. package/ui-fireui/fui-keyboard-input/fui-keyboard-input.vue +78 -0
  56. package/ui-fireui/fui-list-cell/fui-list-cell.vue +178 -0
  57. package/ui-fireui/fui-list-view/fui-list-view.vue +87 -0
  58. package/ui-fireui/fui-loading/fui-loading.vue +78 -0
  59. package/ui-fireui/fui-loadmore/fui-loadmore.vue +163 -0
  60. package/ui-fireui/fui-modal/fui-modal.vue +392 -0
  61. package/ui-fireui/fui-navigation-bar/fui-navigation-bar.vue +180 -0
  62. package/ui-fireui/fui-no-data/fui-no-data.vue +116 -0
  63. package/ui-fireui/fui-nomore/fui-nomore.vue +116 -0
  64. package/ui-fireui/fui-numberbox/fui-numberbox.vue +234 -0
  65. package/ui-fireui/fui-numberbox-border/fui-numberbox-border.vue +232 -0
  66. package/ui-fireui/fui-picture-cropper/fui-picture-cropper.vue +682 -0
  67. package/ui-fireui/fui-picture-cropper/fui-picture-cropper.wxs +560 -0
  68. package/ui-fireui/fui-rate/fui-rate.vue +167 -0
  69. package/ui-fireui/fui-round-progress/fui-round-progress.vue +306 -0
  70. package/ui-fireui/fui-scroll-top/fui-scroll-top.vue +189 -0
  71. package/ui-fireui/fui-sharemodel/fui-sharemodel.vue +181 -0
  72. package/ui-fireui/fui-skeleton/fui-skeleton.vue +248 -0
  73. package/ui-fireui/fui-steps/fui-steps.vue +214 -0
  74. package/ui-fireui/fui-sticky/fui-sticky.vue +155 -0
  75. package/ui-fireui/fui-sticky-wxs/fui-sticky-wxs.vue +133 -0
  76. package/ui-fireui/fui-sticky-wxs/fui-sticky.wxs +44 -0
  77. package/ui-fireui/fui-swipe-action/fui-swipe-action.vue +301 -0
  78. package/ui-fireui/fui-tabbar/fui-tabbar.vue +283 -0
  79. package/ui-fireui/fui-tabs/fui-tabs.vue +284 -0
  80. package/ui-fireui/fui-tabs2/fui-tabs2.vue +284 -0
  81. package/ui-fireui/fui-tag/fui-tag.vue +374 -0
  82. package/ui-fireui/fui-time-axis/fui-time-axis.vue +36 -0
  83. package/ui-fireui/fui-timeaxis-item/fui-timeaxis-item.vue +48 -0
  84. package/ui-fireui/fui-tips/fui-tips.vue +161 -0
  85. package/ui-fireui/fui-toast/fui-toast.vue +117 -0
  86. package/ui-fireui/fui-top-dropdown/fui-top-dropdown.vue +129 -0
  87. package/ui-fireui/fui-upload/fui-upload.vue +446 -0
  88. package/ui-fireui/fui-uploadsamll/fui-uploadsamll.vue +472 -0
  89. package/uni-ui/lib/uni-icons/changelog.md +22 -0
  90. package/uni-ui/lib/uni-icons/package.json +42 -0
  91. package/uni-ui/lib/uni-icons/readme.md +8 -0
  92. package/uview-plus/LICENSE +1 -1
  93. package/uview-plus/README.md +22 -12
  94. package/uview-plus/changelog-wu-tool.md +21 -0
  95. package/uview-plus/changelog-wu.md +91 -0
  96. package/uview-plus/changelog.md +752 -0
  97. package/uview-plus/components/u--form/u--form.vue +1 -1
  98. package/uview-plus/components/u--image/u--image.vue +1 -1
  99. package/uview-plus/components/u--input/u--input.vue +3 -3
  100. package/uview-plus/components/u--text/u--text.vue +1 -1
  101. package/uview-plus/components/u--textarea/u--textarea.vue +1 -1
  102. package/uview-plus/components/u-action-sheet/_doc/changelog.md +12 -0
  103. package/uview-plus/components/u-action-sheet/_doc/package.json +92 -0
  104. package/uview-plus/components/u-action-sheet/_doc/readme.md +16 -0
  105. package/uview-plus/{libs/config/props → components/u-action-sheet}/actionSheet.js +3 -2
  106. package/uview-plus/components/u-action-sheet/props.js +20 -13
  107. package/uview-plus/components/u-action-sheet/style.css +18 -4
  108. package/uview-plus/components/u-action-sheet/style.scss +2 -2
  109. package/uview-plus/components/u-action-sheet/u-action-sheet.vue +21 -13
  110. package/uview-plus/components/u-action-sheet-data/style.css +10 -0
  111. package/uview-plus/components/u-action-sheet-data/style.scss +12 -0
  112. package/uview-plus/components/u-action-sheet-data/u-action-sheet-data.vue +94 -0
  113. package/uview-plus/{libs/config/props → components/u-album}/album.js +5 -2
  114. package/uview-plus/components/u-album/props.js +40 -14
  115. package/uview-plus/components/u-album/style.css +16 -2
  116. package/uview-plus/components/u-album/style.scss +0 -1
  117. package/uview-plus/components/u-album/u-album.vue +55 -30
  118. package/uview-plus/components/u-alert/props.js +12 -11
  119. package/uview-plus/components/u-alert/style.css +17 -2
  120. package/uview-plus/components/u-alert/u-alert.vue +12 -6
  121. package/uview-plus/components/u-app-update/_doc/changelog.md +26 -0
  122. package/uview-plus/components/u-app-update/_doc/package.json +89 -0
  123. package/uview-plus/components/u-app-update/_doc/readme.md +16 -0
  124. package/uview-plus/components/u-app-update/config.js +120 -0
  125. package/uview-plus/components/u-app-update/img/act.png +0 -0
  126. package/uview-plus/components/u-app-update/img/appUploadAlertBoxBg.png +0 -0
  127. package/uview-plus/components/u-app-update/img/close.png +0 -0
  128. package/uview-plus/components/u-app-update/js-sdk/checkVersion.js +81 -0
  129. package/uview-plus/components/u-app-update/js-sdk/silentlyAppUpdate.js +41 -0
  130. package/uview-plus/components/u-app-update/pages/index.vue +8 -0
  131. package/uview-plus/components/u-app-update/u-app-update.vue +583 -0
  132. package/uview-plus/components/u-avatar/props.js +20 -18
  133. package/uview-plus/components/u-avatar/style.css +18 -2
  134. package/uview-plus/components/u-avatar/style.scss +1 -0
  135. package/uview-plus/components/u-avatar/u-avatar.vue +20 -15
  136. package/uview-plus/{libs/config/props → components/u-avatar-group}/avatarGroup.js +1 -1
  137. package/uview-plus/components/u-avatar-group/props.js +13 -12
  138. package/uview-plus/components/u-avatar-group/style.css +17 -2
  139. package/uview-plus/components/u-avatar-group/u-avatar-group.vue +2 -73
  140. package/uview-plus/{libs/config/props → components/u-back-top}/backtop.js +2 -2
  141. package/uview-plus/components/u-back-top/props.js +14 -13
  142. package/uview-plus/components/u-back-top/style.css +17 -2
  143. package/uview-plus/components/u-back-top/u-back-top.vue +11 -9
  144. package/uview-plus/{libs/config/props → components/u-badge}/badge.js +1 -1
  145. package/uview-plus/components/u-badge/props.js +18 -17
  146. package/uview-plus/components/u-badge/style.css +17 -2
  147. package/uview-plus/components/u-badge/u-badge.vue +11 -7
  148. package/uview-plus/components/u-box/props.js +27 -0
  149. package/uview-plus/components/u-box/style.css +77 -0
  150. package/uview-plus/components/u-box/style.scss +38 -0
  151. package/uview-plus/components/u-box/u-box.vue +3 -0
  152. package/uview-plus/{libs/config/props → components/u-button}/button.js +2 -1
  153. package/uview-plus/components/u-button/nvue-parse.scss +2 -2
  154. package/uview-plus/components/u-button/props.js +37 -40
  155. package/uview-plus/components/u-button/style.css +21 -5
  156. package/uview-plus/components/u-button/u-button.vue +32 -21
  157. package/uview-plus/components/u-button/vue-parse.scss +4 -3
  158. package/uview-plus/components/u-button/vue.scss +9 -8
  159. package/uview-plus/components/u-button-wu/_doc/changelog.md +6 -0
  160. package/uview-plus/components/u-button-wu/_doc/package.json +89 -0
  161. package/uview-plus/components/u-button-wu/_doc/readme.md +16 -0
  162. package/uview-plus/components/u-button-wu/u-button-wu.vue +522 -0
  163. package/uview-plus/components/u-button-wu/vue.scss +81 -0
  164. package/uview-plus/{libs/config/props → components/u-calendar}/calendar.js +7 -4
  165. package/uview-plus/components/u-calendar/header.vue +3 -1
  166. package/uview-plus/components/u-calendar/month.vue +43 -19
  167. package/uview-plus/components/u-calendar/props.js +45 -30
  168. package/uview-plus/components/u-calendar/style.css +17 -2
  169. package/uview-plus/components/u-calendar/u-calendar.vue +53 -17
  170. package/uview-plus/components/u-calendar-wu/_doc/changelog.md +145 -0
  171. package/uview-plus/components/u-calendar-wu/_doc/package.json +90 -0
  172. package/uview-plus/components/u-calendar-wu/_doc/readme.md +16 -0
  173. package/uview-plus/components/u-calendar-wu/calendar.js +664 -0
  174. package/uview-plus/components/u-calendar-wu/i18n/en.json +14 -0
  175. package/uview-plus/components/u-calendar-wu/i18n/index.js +8 -0
  176. package/uview-plus/components/u-calendar-wu/i18n/zh-Hans.json +14 -0
  177. package/uview-plus/components/u-calendar-wu/i18n/zh-Hant.json +14 -0
  178. package/uview-plus/components/u-calendar-wu/props.js +166 -0
  179. package/uview-plus/components/u-calendar-wu/style.css +196 -0
  180. package/uview-plus/components/u-calendar-wu/u-calendar-wu.vue +921 -0
  181. package/uview-plus/components/u-calendar-wu/util.js +552 -0
  182. package/uview-plus/components/u-calendar-wu/wu-calendar-block/props.js +73 -0
  183. package/uview-plus/components/u-calendar-wu/wu-calendar-block/wu-calendar-block.vue +122 -0
  184. package/uview-plus/components/u-calendar-wu/wu-calendar-item/props.js +55 -0
  185. package/uview-plus/components/u-calendar-wu/wu-calendar-item/wu-calendar-item.vue +293 -0
  186. package/uview-plus/components/u-car-keyboard/props.js +5 -3
  187. package/uview-plus/components/u-car-keyboard/style.css +18 -3
  188. package/uview-plus/components/u-car-keyboard/u-car-keyboard.vue +205 -1
  189. package/uview-plus/components/u-card/card.js +40 -0
  190. package/uview-plus/components/u-card/props.js +134 -0
  191. package/uview-plus/components/u-card/style.css +60 -0
  192. package/uview-plus/components/u-card/style.scss +47 -0
  193. package/uview-plus/components/u-card/u-card.vue +3 -0
  194. package/uview-plus/components/u-cate-tab/style.css +97 -0
  195. package/uview-plus/components/u-cate-tab/style.scss +114 -0
  196. package/uview-plus/components/u-cate-tab/u-cate-tab.vue +3 -0
  197. package/uview-plus/components/u-cell/_doc/changelog.md +6 -0
  198. package/uview-plus/components/u-cell/_doc/package.json +89 -0
  199. package/uview-plus/components/u-cell/_doc/readme.md +25 -0
  200. package/uview-plus/components/u-cell/props.js +24 -23
  201. package/uview-plus/components/u-cell/style.css +43 -3
  202. package/uview-plus/components/u-cell/style.scss +25 -2
  203. package/uview-plus/components/u-cell/u-cell.vue +44 -31
  204. package/uview-plus/components/u-cell-group/props.js +6 -5
  205. package/uview-plus/components/u-cell-group/style.css +17 -2
  206. package/uview-plus/components/u-cell-group/u-cell-group.vue +10 -6
  207. package/uview-plus/components/u-checkbox/_doc/changelog.md +8 -0
  208. package/uview-plus/components/u-checkbox/_doc/package.json +88 -0
  209. package/uview-plus/components/u-checkbox/_doc/readme.md +25 -0
  210. package/uview-plus/components/u-checkbox/props.js +22 -16
  211. package/uview-plus/components/u-checkbox/style.css +17 -2
  212. package/uview-plus/components/u-checkbox/u-checkbox.vue +87 -57
  213. package/uview-plus/{libs/config/props → components/u-checkbox-group}/checkboxGroup.js +1 -1
  214. package/uview-plus/components/u-checkbox-group/props.js +21 -19
  215. package/uview-plus/components/u-checkbox-group/style.css +17 -2
  216. package/uview-plus/components/u-checkbox-group/u-checkbox-group.vue +5 -5
  217. package/uview-plus/components/u-circle-progress/props.js +5 -4
  218. package/uview-plus/components/u-circle-progress/style.css +23 -8
  219. package/uview-plus/components/u-circle-progress/u-circle-progress.vue +5 -4
  220. package/uview-plus/components/u-code/_doc/changelog.md +6 -0
  221. package/uview-plus/components/u-code/_doc/package.json +86 -0
  222. package/uview-plus/components/u-code/_doc/readme.md +16 -0
  223. package/uview-plus/components/u-code/props.js +10 -9
  224. package/uview-plus/components/u-code/style.css +17 -2
  225. package/uview-plus/components/u-code/u-code.vue +6 -5
  226. package/uview-plus/components/u-code-input/props.js +28 -18
  227. package/uview-plus/components/u-code-input/style.css +22 -6
  228. package/uview-plus/components/u-code-input/style.scss +5 -4
  229. package/uview-plus/components/u-code-input/u-code-input.vue +57 -11
  230. package/uview-plus/components/u-col/props.js +9 -8
  231. package/uview-plus/components/u-col/style.css +29 -14
  232. package/uview-plus/components/u-col/u-col.vue +10 -8
  233. package/uview-plus/components/u-collapse/props.js +7 -6
  234. package/uview-plus/components/u-collapse/style.css +17 -2
  235. package/uview-plus/components/u-collapse/u-collapse.vue +4 -3
  236. package/uview-plus/{libs/config/props → components/u-collapse-item}/collapseItem.js +7 -1
  237. package/uview-plus/components/u-collapse-item/props.js +51 -14
  238. package/uview-plus/components/u-collapse-item/style.css +17 -2
  239. package/uview-plus/components/u-collapse-item/u-collapse-item.vue +3 -1
  240. package/uview-plus/{libs/config/props → components/u-column-notice}/columnNotice.js +2 -1
  241. package/uview-plus/components/u-column-notice/props.js +18 -13
  242. package/uview-plus/components/u-column-notice/style.css +17 -2
  243. package/uview-plus/components/u-column-notice/u-column-notice.vue +15 -7
  244. package/uview-plus/components/u-copy/u-copy.vue +1 -0
  245. package/uview-plus/components/u-count-down/props.js +8 -7
  246. package/uview-plus/components/u-count-down/style.css +17 -2
  247. package/uview-plus/components/u-count-down/u-count-down.vue +146 -1
  248. package/uview-plus/components/u-count-to/props.js +15 -14
  249. package/uview-plus/components/u-count-to/style.css +17 -2
  250. package/uview-plus/components/u-count-to/u-count-to.vue +7 -4
  251. package/uview-plus/{libs/config/props → components/u-datetime-picker}/datetimePicker.js +7 -1
  252. package/uview-plus/components/u-datetime-picker/props.js +68 -26
  253. package/uview-plus/components/u-datetime-picker/style.css +42 -1
  254. package/uview-plus/components/u-datetime-picker/style.scss +26 -0
  255. package/uview-plus/components/u-datetime-picker/u-datetime-picker.vue +140 -40
  256. package/uview-plus/components/u-divider/props.js +12 -11
  257. package/uview-plus/components/u-divider/style.css +17 -2
  258. package/uview-plus/components/u-divider/u-divider.vue +8 -5
  259. package/uview-plus/components/u-drag-sort/_doc/changelog.md +0 -0
  260. package/uview-plus/components/u-drag-sort/_doc/package.json +85 -0
  261. package/uview-plus/components/u-drag-sort/_doc/readme.md +16 -0
  262. package/uview-plus/components/u-drag-sort/u-drag-sort.vue +3 -0
  263. package/uview-plus/components/u-dropdown/props.js +12 -17
  264. package/uview-plus/components/u-dropdown/style.css +63 -3
  265. package/uview-plus/components/u-dropdown/style.scss +68 -18
  266. package/uview-plus/components/u-dropdown/u-dropdown.vue +208 -1
  267. package/uview-plus/components/u-dropdown-item/props.js +47 -37
  268. package/uview-plus/components/u-dropdown-item/style.css +19 -6
  269. package/uview-plus/components/u-dropdown-item/style.scss +4 -9
  270. package/uview-plus/components/u-dropdown-item/u-dropdown-item.vue +126 -1
  271. package/uview-plus/components/u-empty/props.js +15 -14
  272. package/uview-plus/components/u-empty/style.css +17 -2
  273. package/uview-plus/components/u-empty/u-empty.vue +39 -9
  274. package/uview-plus/components/u-float-button/style.css +41 -0
  275. package/uview-plus/components/u-float-button/style.scss +17 -0
  276. package/uview-plus/components/u-float-button/u-float-button.vue +164 -0
  277. package/uview-plus/{libs/config/props → components/u-form}/form.js +3 -3
  278. package/uview-plus/components/u-form/props.js +12 -11
  279. package/uview-plus/components/u-form/u-form.vue +1 -1
  280. package/uview-plus/{libs/config/props → components/u-form-item}/formItem.js +2 -0
  281. package/uview-plus/components/u-form-item/props.js +22 -11
  282. package/uview-plus/components/u-form-item/style.css +17 -4
  283. package/uview-plus/components/u-form-item/style.scss +0 -2
  284. package/uview-plus/components/u-form-item/u-form-item.vue +42 -15
  285. package/uview-plus/components/u-gap/_doc/changelog.md +4 -0
  286. package/uview-plus/components/u-gap/_doc/package.json +86 -0
  287. package/uview-plus/components/u-gap/_doc/readme.md +22 -0
  288. package/uview-plus/components/u-gap/props.js +8 -7
  289. package/uview-plus/components/u-gap/style.css +17 -2
  290. package/uview-plus/components/u-gap/u-gap.vue +8 -7
  291. package/uview-plus/components/u-grid/props.js +12 -6
  292. package/uview-plus/components/u-grid/style.css +23 -3
  293. package/uview-plus/components/u-grid/style.scss +8 -1
  294. package/uview-plus/components/u-grid/u-grid.vue +11 -4
  295. package/uview-plus/components/u-grid-item/props.js +6 -5
  296. package/uview-plus/components/u-grid-item/style.css +17 -2
  297. package/uview-plus/components/u-grid-item/u-grid-item.vue +17 -14
  298. package/uview-plus/components/u-icon/_doc/changelog.md +10 -0
  299. package/uview-plus/components/u-icon/_doc/package.json +85 -0
  300. package/uview-plus/components/u-icon/_doc/readme.md +10 -0
  301. package/uview-plus/components/u-icon/icon.js +34 -0
  302. package/uview-plus/components/u-icon/icons.js +213 -213
  303. package/uview-plus/components/u-icon/props.js +21 -20
  304. package/uview-plus/components/u-icon/style.css +18 -3
  305. package/uview-plus/components/u-icon/style.scss +2 -3
  306. package/uview-plus/components/u-icon/u-icon.vue +85 -34
  307. package/uview-plus/components/u-icon/u-icon2.vue +149 -0
  308. package/uview-plus/components/u-image/props.js +20 -19
  309. package/uview-plus/components/u-image/style.css +17 -2
  310. package/uview-plus/components/u-image/u-image.vue +59 -24
  311. package/uview-plus/components/u-image-wu/_doc/changelog.md +21 -0
  312. package/uview-plus/components/u-image-wu/_doc/package.json +88 -0
  313. package/uview-plus/components/u-image-wu/_doc/readme.md +11 -0
  314. package/uview-plus/components/u-image-wu/props.js +94 -0
  315. package/uview-plus/components/u-image-wu/u-image-wu.vue +243 -0
  316. package/uview-plus/components/u-index-anchor/props.js +9 -8
  317. package/uview-plus/components/u-index-anchor/style.css +17 -2
  318. package/uview-plus/components/u-index-anchor/u-index-anchor.vue +12 -10
  319. package/uview-plus/components/u-index-item/props.js +5 -3
  320. package/uview-plus/components/u-index-item/style.css +17 -2
  321. package/uview-plus/components/u-index-item/u-index-item.vue +7 -6
  322. package/uview-plus/{libs/config/props → components/u-index-list}/indexList.js +3 -2
  323. package/uview-plus/components/u-index-list/props.js +14 -8
  324. package/uview-plus/components/u-index-list/style.css +19 -3
  325. package/uview-plus/components/u-index-list/style.scss +2 -1
  326. package/uview-plus/components/u-index-list/u-index-list.vue +193 -60
  327. package/uview-plus/components/u-input/_doc/changelog.md +6 -0
  328. package/uview-plus/components/u-input/_doc/package.json +88 -0
  329. package/uview-plus/components/u-input/_doc/readme.md +16 -0
  330. package/uview-plus/{libs/config/props → components/u-input}/input.js +1 -1
  331. package/uview-plus/components/u-input/props.js +40 -38
  332. package/uview-plus/components/u-input/style.css +17 -2
  333. package/uview-plus/components/u-input/u-input.vue +70 -54
  334. package/uview-plus/components/u-keyboard/props.js +20 -19
  335. package/uview-plus/components/u-keyboard/style.css +17 -2
  336. package/uview-plus/components/u-keyboard/u-keyboard.vue +4 -3
  337. package/uview-plus/components/u-lazy-load/style.css +38 -0
  338. package/uview-plus/components/u-lazy-load/style.scss +17 -0
  339. package/uview-plus/components/u-lazy-load/u-lazy-load.vue +3 -0
  340. package/uview-plus/components/u-line/_doc/changelog.md +8 -0
  341. package/uview-plus/components/u-line/_doc/package.json +86 -0
  342. package/uview-plus/components/u-line/_doc/readme.md +16 -0
  343. package/uview-plus/components/u-line/props.js +10 -9
  344. package/uview-plus/components/u-line/style.css +17 -2
  345. package/uview-plus/components/u-line/u-line.vue +7 -6
  346. package/uview-plus/components/u-line-progress/props.js +9 -8
  347. package/uview-plus/components/u-line-progress/style.css +17 -2
  348. package/uview-plus/components/u-line-progress/u-line-progress.vue +11 -8
  349. package/uview-plus/components/u-link/_doc/changelog.md +8 -0
  350. package/uview-plus/components/u-link/_doc/package.json +86 -0
  351. package/uview-plus/components/u-link/_doc/readme.md +20 -0
  352. package/uview-plus/{libs/config/props → components/u-link}/link.js +1 -1
  353. package/uview-plus/components/u-link/props.js +11 -10
  354. package/uview-plus/components/u-link/style.css +17 -2
  355. package/uview-plus/components/u-link/u-link.vue +10 -7
  356. package/uview-plus/components/u-list/props.js +43 -18
  357. package/uview-plus/components/u-list/style.css +17 -2
  358. package/uview-plus/components/u-list/u-list.vue +41 -10
  359. package/uview-plus/components/u-list-item/props.js +5 -4
  360. package/uview-plus/components/u-list-item/style.css +17 -2
  361. package/uview-plus/components/u-list-item/u-list-item.vue +5 -4
  362. package/uview-plus/components/u-loading-icon/_doc/changelog.md +12 -0
  363. package/uview-plus/components/u-loading-icon/_doc/package.json +86 -0
  364. package/uview-plus/components/u-loading-icon/_doc/readme.md +16 -0
  365. package/uview-plus/{libs/config/props → components/u-loading-icon}/loadingIcon.js +1 -1
  366. package/uview-plus/components/u-loading-icon/props.js +16 -15
  367. package/uview-plus/components/u-loading-icon/style.css +21 -5
  368. package/uview-plus/components/u-loading-icon/style.scss +3 -3
  369. package/uview-plus/components/u-loading-icon/u-loading-icon.vue +3 -1
  370. package/uview-plus/{libs/config/props → components/u-loading-page}/loadingPage.js +2 -1
  371. package/uview-plus/components/u-loading-page/props.js +19 -12
  372. package/uview-plus/components/u-loading-page/style.css +19 -4
  373. package/uview-plus/components/u-loading-page/u-loading-page.vue +15 -9
  374. package/uview-plus/components/u-loadmore/props.js +22 -21
  375. package/uview-plus/components/u-loadmore/style.css +17 -2
  376. package/uview-plus/components/u-loadmore/u-loadmore.vue +13 -9
  377. package/uview-plus/components/u-mask/u-mask.vue +122 -0
  378. package/uview-plus/{libs/config/props → components/u-modal}/modal.js +5 -1
  379. package/uview-plus/components/u-modal/props.js +40 -19
  380. package/uview-plus/components/u-modal/style.css +21 -2
  381. package/uview-plus/components/u-modal/style.scss +69 -65
  382. package/uview-plus/components/u-modal/u-modal.vue +184 -1
  383. package/uview-plus/components/u-navbar/_doc/changelog.md +6 -0
  384. package/uview-plus/components/u-navbar/_doc/package.json +89 -0
  385. package/uview-plus/components/u-navbar/_doc/readme.md +16 -0
  386. package/uview-plus/{libs/config/props → components/u-navbar}/navbar.js +2 -1
  387. package/uview-plus/components/u-navbar/props.js +26 -19
  388. package/uview-plus/components/u-navbar/style.css +17 -2
  389. package/uview-plus/components/u-navbar/u-navbar.vue +25 -12
  390. package/uview-plus/components/u-navbar-mini/props.js +51 -0
  391. package/uview-plus/components/u-navbar-mini/style.css +60 -0
  392. package/uview-plus/components/u-navbar-mini/style.scss +38 -0
  393. package/uview-plus/components/u-navbar-mini/u-navbar-mini.vue +89 -0
  394. package/uview-plus/components/u-navbar-wu/props.js +102 -0
  395. package/uview-plus/components/u-navbar-wu/u-navbar-wu.vue +196 -0
  396. package/uview-plus/components/u-no-network/props.js +7 -6
  397. package/uview-plus/components/u-no-network/style.css +17 -2
  398. package/uview-plus/components/u-no-network/u-no-network.vue +8 -6
  399. package/uview-plus/{libs/config/props → components/u-notice-bar}/noticeBar.js +3 -2
  400. package/uview-plus/components/u-notice-bar/props.js +21 -16
  401. package/uview-plus/components/u-notice-bar/style.css +17 -2
  402. package/uview-plus/components/u-notice-bar/u-notice-bar.vue +10 -4
  403. package/uview-plus/components/u-notify/props.js +13 -12
  404. package/uview-plus/components/u-notify/style.css +17 -2
  405. package/uview-plus/components/u-notify/u-notify.vue +20 -16
  406. package/uview-plus/components/u-number-box/_doc/changelog.md +19 -0
  407. package/uview-plus/components/u-number-box/_doc/package.json +88 -0
  408. package/uview-plus/components/u-number-box/_doc/readme.md +16 -0
  409. package/uview-plus/{libs/config/props → components/u-number-box}/numberBox.js +5 -1
  410. package/uview-plus/components/u-number-box/props.js +46 -25
  411. package/uview-plus/components/u-number-box/style.css +17 -2
  412. package/uview-plus/components/u-number-box/u-number-box.vue +72 -35
  413. package/uview-plus/components/u-number-keyboard/props.js +7 -6
  414. package/uview-plus/components/u-number-keyboard/style.css +19 -4
  415. package/uview-plus/components/u-number-keyboard/u-number-keyboard.vue +9 -6
  416. package/uview-plus/components/u-overlay/_doc/changelog.md +4 -0
  417. package/uview-plus/components/u-overlay/_doc/package.json +88 -0
  418. package/uview-plus/components/u-overlay/_doc/readme.md +16 -0
  419. package/uview-plus/components/u-overlay/props.js +8 -7
  420. package/uview-plus/components/u-overlay/style.css +17 -2
  421. package/uview-plus/components/u-overlay/u-overlay.vue +14 -5
  422. package/uview-plus/components/u-parse/node/node.vue +12 -4
  423. package/uview-plus/components/u-parse/parser.js +1337 -1333
  424. package/uview-plus/components/u-parse/props.js +48 -47
  425. package/uview-plus/components/u-parse/u-parse.vue +6 -6
  426. package/uview-plus/{libs/config/props → components/u-picker}/picker.js +10 -4
  427. package/uview-plus/components/u-picker/props.js +60 -18
  428. package/uview-plus/components/u-picker/style.css +29 -2
  429. package/uview-plus/components/u-picker/style.scss +12 -1
  430. package/uview-plus/components/u-picker/u-picker.vue +174 -58
  431. package/uview-plus/components/u-picker-column/props.js +4 -3
  432. package/uview-plus/components/u-picker-column/style.css +17 -2
  433. package/uview-plus/components/u-picker-column/u-picker-column.vue +3 -3
  434. package/uview-plus/components/u-picker-data/style.css +10 -0
  435. package/uview-plus/components/u-picker-data/style.scss +12 -0
  436. package/uview-plus/components/u-picker-data/u-picker-data.vue +110 -0
  437. package/uview-plus/components/u-popup/_doc/changelog.md +4 -0
  438. package/uview-plus/components/u-popup/_doc/package.json +92 -0
  439. package/uview-plus/components/u-popup/_doc/readme.md +16 -0
  440. package/uview-plus/{libs/config/props → components/u-popup}/popup.js +1 -1
  441. package/uview-plus/components/u-popup/props.js +19 -18
  442. package/uview-plus/components/u-popup/style.css +27 -2
  443. package/uview-plus/components/u-popup/style.scss +86 -75
  444. package/uview-plus/components/u-popup/u-popup.vue +250 -1
  445. package/uview-plus/components/u-popup-wu/keypress.js +45 -0
  446. package/uview-plus/components/u-popup-wu/u-popup-wu.vue +519 -0
  447. package/uview-plus/components/u-qrcode/qrcode.js +1235 -0
  448. package/uview-plus/components/u-qrcode/style.css +20 -0
  449. package/uview-plus/components/u-qrcode/style.scss +23 -0
  450. package/uview-plus/components/u-qrcode/u-qrcode.vue +3 -0
  451. package/uview-plus/components/u-radio/_doc/changelog.md +6 -0
  452. package/uview-plus/components/u-radio/_doc/package.json +88 -0
  453. package/uview-plus/components/u-radio/_doc/readme.md +25 -0
  454. package/uview-plus/components/u-radio/props.js +17 -16
  455. package/uview-plus/components/u-radio/style.css +17 -2
  456. package/uview-plus/components/u-radio/u-radio.vue +32 -27
  457. package/uview-plus/components/u-radio-group/props.js +26 -20
  458. package/uview-plus/{libs/config/props → components/u-radio-group}/radioGroup.js +4 -3
  459. package/uview-plus/components/u-radio-group/style.css +17 -2
  460. package/uview-plus/components/u-radio-group/u-radio-group.vue +12 -4
  461. package/uview-plus/components/u-rate/props.js +18 -17
  462. package/uview-plus/components/u-rate/style.css +17 -2
  463. package/uview-plus/components/u-rate/u-rate.vue +17 -14
  464. package/uview-plus/components/u-read-more/props.js +12 -11
  465. package/uview-plus/components/u-read-more/style.css +18 -2
  466. package/uview-plus/components/u-read-more/style.scss +23 -22
  467. package/uview-plus/components/u-read-more/u-read-more.vue +2 -118
  468. package/uview-plus/components/u-row/_doc/changelog.md +8 -0
  469. package/uview-plus/components/u-row/_doc/package.json +86 -0
  470. package/uview-plus/components/u-row/_doc/readme.md +16 -0
  471. package/uview-plus/components/u-row/props.js +7 -6
  472. package/uview-plus/components/u-row/style.css +17 -2
  473. package/uview-plus/components/u-row/u-row.vue +9 -7
  474. package/uview-plus/components/u-row-notice/props.js +11 -10
  475. package/uview-plus/components/u-row-notice/style.css +18 -2
  476. package/uview-plus/components/u-row-notice/style.scss +1 -0
  477. package/uview-plus/components/u-row-notice/u-row-notice.vue +17 -15
  478. package/uview-plus/components/u-safe-bottom/_doc/changelog.md +6 -0
  479. package/uview-plus/components/u-safe-bottom/_doc/package.json +86 -0
  480. package/uview-plus/components/u-safe-bottom/_doc/readme.md +16 -0
  481. package/uview-plus/components/u-safe-bottom/props.js +5 -3
  482. package/uview-plus/components/u-safe-bottom/u-safe-bottom.vue +3 -1
  483. package/uview-plus/components/u-scroll-list/nvue.js +1 -3
  484. package/uview-plus/components/u-scroll-list/props.js +10 -9
  485. package/uview-plus/components/u-scroll-list/style.css +18 -2
  486. package/uview-plus/components/u-scroll-list/style.scss +2 -0
  487. package/uview-plus/components/u-scroll-list/u-scroll-list.vue +17 -12
  488. package/uview-plus/components/u-search/props.js +42 -27
  489. package/uview-plus/{libs/config/props → components/u-search}/search.js +3 -2
  490. package/uview-plus/components/u-search/style.css +23 -2
  491. package/uview-plus/components/u-search/style.scss +8 -0
  492. package/uview-plus/components/u-search/u-search.vue +22 -8
  493. package/uview-plus/components/u-select/style.css +45 -0
  494. package/uview-plus/components/u-select/style.scss +47 -0
  495. package/uview-plus/components/u-select/u-select.vue +3 -0
  496. package/uview-plus/components/u-skeleton/props.js +15 -14
  497. package/uview-plus/components/u-skeleton/style.css +17 -2
  498. package/uview-plus/components/u-skeleton/u-skeleton.vue +22 -19
  499. package/uview-plus/components/u-sku-wu/_doc/changelog.md +27 -0
  500. package/uview-plus/components/u-sku-wu/_doc/package.json +93 -0
  501. package/uview-plus/components/u-sku-wu/_doc/readme.md +16 -0
  502. package/uview-plus/components/u-sku-wu/props.js +86 -0
  503. package/uview-plus/components/u-sku-wu/style.css +271 -0
  504. package/uview-plus/components/u-sku-wu/u-sku-wu.vue +864 -0
  505. package/uview-plus/components/u-slider/mpwxs.js +2 -1
  506. package/uview-plus/components/u-slider/nvue.js +2 -1
  507. package/uview-plus/components/u-slider/props.js +50 -14
  508. package/uview-plus/{libs/config/props → components/u-slider}/slider.js +3 -1
  509. package/uview-plus/components/u-slider/style.css +81 -1
  510. package/uview-plus/components/u-slider/style.scss +76 -0
  511. package/uview-plus/components/u-slider/u-slider.vue +446 -1
  512. package/uview-plus/components/u-status-bar/_doc/changelog.md +4 -0
  513. package/uview-plus/components/u-status-bar/_doc/package.json +86 -0
  514. package/uview-plus/components/u-status-bar/_doc/readme.md +16 -0
  515. package/uview-plus/components/u-status-bar/props.js +10 -4
  516. package/uview-plus/{libs/config/props → components/u-status-bar}/statusBar.js +2 -1
  517. package/uview-plus/components/u-status-bar/u-status-bar.vue +23 -8
  518. package/uview-plus/components/u-steps/props.js +11 -10
  519. package/uview-plus/components/u-steps/style.css +21 -2
  520. package/uview-plus/components/u-steps/style.scss +4 -0
  521. package/uview-plus/components/u-steps/u-steps.vue +9 -5
  522. package/uview-plus/components/u-steps-item/props.js +13 -7
  523. package/uview-plus/components/u-steps-item/style.css +19 -3
  524. package/uview-plus/components/u-steps-item/style.scss +3 -2
  525. package/uview-plus/components/u-steps-item/u-steps-item.vue +53 -25
  526. package/uview-plus/components/u-sticky/props.js +10 -9
  527. package/uview-plus/components/u-sticky/u-sticky.vue +21 -14
  528. package/uview-plus/components/u-subsection/props.js +13 -12
  529. package/uview-plus/components/u-subsection/style.css +31 -16
  530. package/uview-plus/components/u-subsection/style.scss +13 -13
  531. package/uview-plus/components/u-subsection/u-subsection.vue +35 -22
  532. package/uview-plus/components/u-swipe-action/props.js +10 -4
  533. package/uview-plus/components/u-swipe-action/u-swipe-action.vue +18 -3
  534. package/uview-plus/components/u-swipe-action-item/alipay.sjs +229 -0
  535. package/uview-plus/components/u-swipe-action-item/index.wxs +20 -15
  536. package/uview-plus/components/u-swipe-action-item/nvue - backup.js +3 -2
  537. package/uview-plus/components/u-swipe-action-item/nvue.js +4 -3
  538. package/uview-plus/components/u-swipe-action-item/other.js +178 -0
  539. package/uview-plus/components/u-swipe-action-item/props.js +15 -10
  540. package/uview-plus/components/u-swipe-action-item/style.css +18 -2
  541. package/uview-plus/components/u-swipe-action-item/style.scss +1 -0
  542. package/uview-plus/{libs/config/props → components/u-swipe-action-item}/swipeActionItem.js +1 -0
  543. package/uview-plus/components/u-swipe-action-item/u-swipe-action-item.vue +85 -28
  544. package/uview-plus/components/u-swiper/props.js +28 -27
  545. package/uview-plus/components/u-swiper/style.css +20 -2
  546. package/uview-plus/components/u-swiper/style.scss +3 -0
  547. package/uview-plus/{libs/config/props → components/u-swiper}/swiper.js +1 -1
  548. package/uview-plus/components/u-swiper/u-swiper.vue +63 -52
  549. package/uview-plus/components/u-swiper-indicator/props.js +9 -8
  550. package/uview-plus/components/u-swiper-indicator/style.css +17 -2
  551. package/uview-plus/components/u-swiper-indicator/u-swiper-indicator.vue +10 -6
  552. package/uview-plus/components/u-switch/props.js +15 -14
  553. package/uview-plus/components/u-switch/style.css +17 -2
  554. package/uview-plus/components/u-switch/u-switch.vue +16 -14
  555. package/uview-plus/components/u-tabbar/props.js +13 -11
  556. package/uview-plus/components/u-tabbar/style.css +17 -2
  557. package/uview-plus/components/u-tabbar/u-tabbar.vue +6 -5
  558. package/uview-plus/components/u-tabbar-item/props.js +10 -9
  559. package/uview-plus/components/u-tabbar-item/style.css +22 -2
  560. package/uview-plus/components/u-tabbar-item/style.scss +5 -0
  561. package/uview-plus/components/u-tabbar-item/u-tabbar-item.vue +8 -5
  562. package/uview-plus/components/u-table/props.js +4 -3
  563. package/uview-plus/components/u-table/style.css +17 -2
  564. package/uview-plus/components/u-table/u-table.vue +3 -3
  565. package/uview-plus/components/u-tabs/props.js +21 -15
  566. package/uview-plus/components/u-tabs/style.css +22 -3
  567. package/uview-plus/components/u-tabs/style.scss +5 -1
  568. package/uview-plus/{libs/config/props → components/u-tabs}/tabs.js +9 -8
  569. package/uview-plus/components/u-tabs/u-tabs.vue +78 -24
  570. package/uview-plus/components/u-tabs-item/props.js +4 -3
  571. package/uview-plus/components/u-tabs-item/u-tabs-item.vue +3 -3
  572. package/uview-plus/components/u-tag/props.js +44 -18
  573. package/uview-plus/components/u-tag/style.css +17 -2
  574. package/uview-plus/components/u-tag/tag.js +35 -0
  575. package/uview-plus/components/u-tag/u-tag.vue +177 -1
  576. package/uview-plus/components/u-td/props.js +4 -3
  577. package/uview-plus/components/u-td/style.css +17 -2
  578. package/uview-plus/components/u-td/u-td.vue +3 -3
  579. package/uview-plus/components/u-text/_doc/changelog.md +10 -0
  580. package/uview-plus/components/u-text/_doc/package.json +89 -0
  581. package/uview-plus/components/u-text/_doc/readme.md +20 -0
  582. package/uview-plus/components/u-text/props.js +30 -24
  583. package/uview-plus/components/u-text/style.css +17 -6
  584. package/uview-plus/components/u-text/style.scss +58 -62
  585. package/uview-plus/{libs/config/props → components/u-text}/text.js +4 -3
  586. package/uview-plus/components/u-text/u-text.vue +2 -143
  587. package/uview-plus/components/u-text/value.js +14 -12
  588. package/uview-plus/components/u-textarea/_doc/changelog.md +6 -0
  589. package/uview-plus/components/u-textarea/_doc/package.json +86 -0
  590. package/uview-plus/components/u-textarea/_doc/readme.md +25 -0
  591. package/uview-plus/components/u-textarea/props.js +28 -26
  592. package/uview-plus/components/u-textarea/style.css +17 -2
  593. package/uview-plus/components/u-textarea/u-textarea.vue +2 -221
  594. package/uview-plus/components/u-toast/style.css +18 -3
  595. package/uview-plus/{libs/config/props → components/u-toast}/toast.js +2 -2
  596. package/uview-plus/components/u-toast/u-toast.vue +31 -21
  597. package/uview-plus/components/u-toolbar/props.js +15 -9
  598. package/uview-plus/components/u-toolbar/style.css +24 -2
  599. package/uview-plus/components/u-toolbar/style.scss +5 -0
  600. package/uview-plus/{libs/config/props → components/u-toolbar}/toolbar.js +1 -1
  601. package/uview-plus/components/u-toolbar/u-toolbar.vue +34 -23
  602. package/uview-plus/components/u-tooltip/props.js +15 -14
  603. package/uview-plus/components/u-tooltip/style.css +17 -2
  604. package/uview-plus/{libs/config/props → components/u-tooltip}/tooltip.js +1 -1
  605. package/uview-plus/components/u-tooltip/u-tooltip.vue +22 -44
  606. package/uview-plus/components/u-tr/props.js +4 -3
  607. package/uview-plus/components/u-tr/style.css +16 -1
  608. package/uview-plus/components/u-tr/u-tr.vue +3 -3
  609. package/uview-plus/components/u-transition/_doc/changelog.md +14 -0
  610. package/uview-plus/components/u-transition/_doc/package.json +86 -0
  611. package/uview-plus/components/u-transition/_doc/readme.md +16 -0
  612. package/uview-plus/components/u-transition/props.js +8 -7
  613. package/uview-plus/components/u-transition/style.css +17 -2
  614. package/uview-plus/components/u-transition/transition.js +18 -164
  615. package/uview-plus/components/u-transition/transitionMixin.js +163 -0
  616. package/uview-plus/components/u-transition/u-transition.vue +8 -7
  617. package/uview-plus/components/u-transition-wu/createAnimation.js +148 -0
  618. package/uview-plus/components/u-transition-wu/props.js +32 -0
  619. package/uview-plus/components/u-transition-wu/u-transition.vue +300 -0
  620. package/uview-plus/components/u-upload/mixin.js +6 -4
  621. package/uview-plus/components/u-upload/props.js +73 -26
  622. package/uview-plus/components/u-upload/style.css +44 -8
  623. package/uview-plus/components/u-upload/style.scss +22 -0
  624. package/uview-plus/components/u-upload/u-upload.vue +463 -106
  625. package/uview-plus/{libs/config/props → components/u-upload}/upload.js +13 -4
  626. package/uview-plus/components/u-upload/utils.js +82 -49
  627. package/uview-plus/components/u-verification-code/u-verification-code.vue +161 -0
  628. package/uview-plus/components/u-view/style.css +26 -0
  629. package/uview-plus/components/u-view/style.scss +4 -0
  630. package/uview-plus/components/u-view/u-view.vue +3 -0
  631. package/uview-plus/components/u-waterfall/style.css +51 -0
  632. package/uview-plus/components/u-waterfall/style.scss +23 -0
  633. package/uview-plus/components/u-waterfall/u-waterfall.vue +3 -0
  634. package/uview-plus/index.css +2157 -943
  635. package/uview-plus/index.js +138 -57
  636. package/uview-plus/libs/config/config.js +46 -27
  637. package/uview-plus/libs/config/props.js +120 -94
  638. package/uview-plus/libs/css/color-libcss.scss +117 -0
  639. package/uview-plus/libs/css/color.scss +32 -155
  640. package/uview-plus/libs/css/common-libcss.scss +118 -14
  641. package/uview-plus/libs/css/common.scss +27 -12
  642. package/uview-plus/libs/css/components-libcss.scss +16 -1
  643. package/uview-plus/libs/css/components-wu.scss +30 -0
  644. package/uview-plus/libs/css/components.scss +21 -2
  645. package/uview-plus/libs/css/flex-libcss.scss +1868 -924
  646. package/uview-plus/libs/css/flex.scss +151 -83
  647. package/uview-plus/libs/css/vue-libcss.scss +8 -4
  648. package/uview-plus/libs/css/vue.scss +11 -10
  649. package/uview-plus/libs/function/calc.js +70 -0
  650. package/uview-plus/libs/function/cc.js +66 -0
  651. package/uview-plus/libs/function/color/color-convert/CHANGELOG.md +54 -0
  652. package/uview-plus/libs/function/color/color-convert/LICENSE +21 -0
  653. package/uview-plus/libs/function/color/color-convert/README.md +68 -0
  654. package/uview-plus/libs/function/color/color-convert/conversions.js +839 -0
  655. package/uview-plus/libs/function/color/color-convert/index.js +81 -0
  656. package/uview-plus/libs/function/color/color-convert/package.json +48 -0
  657. package/uview-plus/libs/function/color/color-convert/route.js +97 -0
  658. package/uview-plus/libs/function/color/color-name/LICENSE +8 -0
  659. package/uview-plus/libs/function/color/color-name/README.md +11 -0
  660. package/uview-plus/libs/function/color/color-name/index.js +152 -0
  661. package/uview-plus/libs/function/color/color-name/package.json +28 -0
  662. package/uview-plus/libs/function/color/color-string/LICENSE +21 -0
  663. package/uview-plus/libs/function/color/color-string/README.md +62 -0
  664. package/uview-plus/libs/function/color/color-string/index.js +244 -0
  665. package/uview-plus/libs/function/color/color-string/package.json +39 -0
  666. package/uview-plus/libs/function/color/color.js +496 -0
  667. package/uview-plus/libs/function/color/index.js +158 -0
  668. package/uview-plus/libs/function/color/is-arrayish/LICENSE +21 -0
  669. package/uview-plus/libs/function/color/is-arrayish/README.md +16 -0
  670. package/uview-plus/libs/function/color/is-arrayish/index.js +9 -0
  671. package/uview-plus/libs/function/color/is-arrayish/package.json +45 -0
  672. package/uview-plus/libs/function/color/is-arrayish/yarn-error.log +1443 -0
  673. package/uview-plus/libs/function/color/simple-swizzle/LICENSE +21 -0
  674. package/uview-plus/libs/function/color/simple-swizzle/README.md +39 -0
  675. package/uview-plus/libs/function/color/simple-swizzle/index.js +29 -0
  676. package/uview-plus/libs/function/color/simple-swizzle/package.json +36 -0
  677. package/uview-plus/libs/function/colorGradient.js +112 -110
  678. package/uview-plus/libs/function/debounce.js +18 -18
  679. package/uview-plus/libs/function/digit.js +6 -8
  680. package/uview-plus/libs/function/http.js +4 -0
  681. package/uview-plus/libs/function/index-wu.js +231 -0
  682. package/uview-plus/libs/function/index.js +639 -481
  683. package/uview-plus/libs/function/platform.js +18 -18
  684. package/uview-plus/libs/function/test.js +166 -136
  685. package/uview-plus/libs/function/throttle.js +20 -20
  686. package/uview-plus/libs/luch-request/core/Request.js +199 -198
  687. package/uview-plus/libs/mixin/button.js +6 -2
  688. package/uview-plus/libs/mixin/mixin.js +49 -13
  689. package/uview-plus/libs/mixin/mpMixin.js +7 -2
  690. package/uview-plus/libs/mixin/mpShare.js +24 -10
  691. package/uview-plus/libs/mixin/openType.js +37 -2
  692. package/uview-plus/libs/mixin/style.js +10 -9
  693. package/uview-plus/libs/mixin/touch.js +4 -2
  694. package/uview-plus/libs/util/async-validator.js +1343 -1343
  695. package/uview-plus/libs/util/dayjs.js +404 -0
  696. package/uview-plus/libs/util/gcanvas/bridge/bridge-weex.js +241 -0
  697. package/uview-plus/libs/util/gcanvas/context-2d/FillStyleLinearGradient.js +18 -0
  698. package/uview-plus/libs/util/gcanvas/context-2d/FillStylePattern.js +8 -0
  699. package/uview-plus/libs/util/gcanvas/context-2d/FillStyleRadialGradient.js +17 -0
  700. package/uview-plus/libs/util/gcanvas/context-2d/RenderingContext.js +666 -0
  701. package/uview-plus/libs/util/gcanvas/context-webgl/ActiveInfo.js +11 -0
  702. package/uview-plus/libs/util/gcanvas/context-webgl/Buffer.js +21 -0
  703. package/uview-plus/libs/util/gcanvas/context-webgl/Framebuffer.js +21 -0
  704. package/uview-plus/libs/util/gcanvas/context-webgl/GLenum.js +298 -0
  705. package/uview-plus/libs/util/gcanvas/context-webgl/GLmethod.js +142 -0
  706. package/uview-plus/libs/util/gcanvas/context-webgl/GLtype.js +23 -0
  707. package/uview-plus/libs/util/gcanvas/context-webgl/Program.js +21 -0
  708. package/uview-plus/libs/util/gcanvas/context-webgl/Renderbuffer.js +21 -0
  709. package/uview-plus/libs/util/gcanvas/context-webgl/RenderingContext.js +1191 -0
  710. package/uview-plus/libs/util/gcanvas/context-webgl/Shader.js +22 -0
  711. package/uview-plus/libs/util/gcanvas/context-webgl/ShaderPrecisionFormat.js +11 -0
  712. package/uview-plus/libs/util/gcanvas/context-webgl/Texture.js +22 -0
  713. package/uview-plus/libs/util/gcanvas/context-webgl/UniformLocation.js +22 -0
  714. package/uview-plus/libs/util/gcanvas/context-webgl/classUtils.js +3 -0
  715. package/uview-plus/libs/util/gcanvas/env/canvas.js +74 -0
  716. package/uview-plus/libs/util/gcanvas/env/image.js +96 -0
  717. package/uview-plus/libs/util/gcanvas/env/tool.js +24 -0
  718. package/uview-plus/libs/util/gcanvas/index.js +39 -0
  719. package/uview-plus/libs/util/route.js +102 -106
  720. package/uview-plus/libs/vue.js +3 -0
  721. package/uview-plus/package-wu-tool.json +84 -0
  722. package/uview-plus/package-wu.json +112 -0
  723. package/uview-plus/package.json +106 -90
  724. package/uview-plus/readme-wu.md +148 -0
  725. package/uview-plus/types/comps/_common.d.ts +9 -0
  726. package/uview-plus/types/comps/actionSheet.d.ts +121 -0
  727. package/uview-plus/types/comps/album.d.ts +82 -0
  728. package/uview-plus/types/comps/alert.d.ts +55 -0
  729. package/uview-plus/types/comps/avatar.d.ts +85 -0
  730. package/uview-plus/types/comps/avatarGroup.d.ts +62 -0
  731. package/uview-plus/types/comps/backTop.d.ts +74 -0
  732. package/uview-plus/types/comps/badge.d.ts +76 -0
  733. package/uview-plus/types/comps/button.d.ts +169 -0
  734. package/uview-plus/types/comps/calendar.d.ts +164 -0
  735. package/uview-plus/types/comps/cell.d.ts +133 -0
  736. package/uview-plus/types/comps/cellGroup.d.ts +27 -0
  737. package/uview-plus/types/comps/checkbox.d.ts +69 -0
  738. package/uview-plus/types/comps/checkboxGroup.d.ts +93 -0
  739. package/uview-plus/types/comps/code.d.ts +69 -0
  740. package/uview-plus/types/comps/codeInput.d.ts +98 -0
  741. package/uview-plus/types/comps/col.d.ts +43 -0
  742. package/uview-plus/types/comps/collapse.d.ts +52 -0
  743. package/uview-plus/types/comps/collapseItem.d.ts +83 -0
  744. package/uview-plus/types/comps/countDown.d.ts +60 -0
  745. package/uview-plus/types/comps/countTo.d.ts +88 -0
  746. package/uview-plus/types/comps/datetimePicker.d.ts +146 -0
  747. package/uview-plus/types/comps/divider.d.ts +58 -0
  748. package/uview-plus/types/comps/empty.d.ts +72 -0
  749. package/uview-plus/types/comps/form.d.ts +76 -0
  750. package/uview-plus/types/comps/formItem.d.ts +68 -0
  751. package/uview-plus/types/comps/gap.d.ts +35 -0
  752. package/uview-plus/types/comps/grid.d.ts +34 -0
  753. package/uview-plus/types/comps/gridItem.d.ts +28 -0
  754. package/uview-plus/types/comps/icon.d.ts +93 -0
  755. package/uview-plus/types/comps/image.d.ts +119 -0
  756. package/uview-plus/types/comps/indexAnchor.d.ts +38 -0
  757. package/uview-plus/types/comps/indexItem.d.ts +18 -0
  758. package/uview-plus/types/comps/indexList.d.ts +39 -0
  759. package/uview-plus/types/comps/input.d.ts +234 -0
  760. package/uview-plus/types/comps/keyboard.d.ts +125 -0
  761. package/uview-plus/types/comps/line.d.ts +44 -0
  762. package/uview-plus/types/comps/lineProgress.d.ts +51 -0
  763. package/uview-plus/types/comps/link.d.ts +51 -0
  764. package/uview-plus/types/comps/list.d.ts +92 -0
  765. package/uview-plus/types/comps/listItem.d.ts +18 -0
  766. package/uview-plus/types/comps/loadMore.d.ts +108 -0
  767. package/uview-plus/types/comps/loadingIcon.d.ts +68 -0
  768. package/uview-plus/types/comps/loadingPage.d.ts +58 -0
  769. package/uview-plus/types/comps/modal.d.ts +115 -0
  770. package/uview-plus/types/comps/navbar.d.ts +113 -0
  771. package/uview-plus/types/comps/noNetwork.d.ts +40 -0
  772. package/uview-plus/types/comps/noticeBar.d.ts +85 -0
  773. package/uview-plus/types/comps/notify.d.ts +73 -0
  774. package/uview-plus/types/comps/numberBox.d.ts +155 -0
  775. package/uview-plus/types/comps/overlay.d.ts +46 -0
  776. package/uview-plus/types/comps/parse.d.ts +101 -0
  777. package/uview-plus/types/comps/picker.d.ts +115 -0
  778. package/uview-plus/types/comps/popup.d.ts +103 -0
  779. package/uview-plus/types/comps/radio.d.ts +77 -0
  780. package/uview-plus/types/comps/radioGroup.d.ts +97 -0
  781. package/uview-plus/types/comps/rate.d.ts +85 -0
  782. package/uview-plus/types/comps/readMore.d.ts +80 -0
  783. package/uview-plus/types/comps/row.d.ts +34 -0
  784. package/uview-plus/types/comps/safeBottom.d.ts +16 -0
  785. package/uview-plus/types/comps/scrollList.d.ts +51 -0
  786. package/uview-plus/types/comps/search.d.ts +172 -0
  787. package/uview-plus/types/comps/skeleton.d.ts +70 -0
  788. package/uview-plus/types/comps/slider.d.ts +79 -0
  789. package/uview-plus/types/comps/statusBar.d.ts +22 -0
  790. package/uview-plus/types/comps/steps.d.ts +48 -0
  791. package/uview-plus/types/comps/stepsItem.d.ts +41 -0
  792. package/uview-plus/types/comps/sticky.d.ts +48 -0
  793. package/uview-plus/types/comps/subsection.d.ts +64 -0
  794. package/uview-plus/types/comps/swipeAction.d.ts +24 -0
  795. package/uview-plus/types/comps/swipeActionItem.d.ts +58 -0
  796. package/uview-plus/types/comps/swiper.d.ts +142 -0
  797. package/uview-plus/types/comps/swiperIndicator.d.ts +37 -0
  798. package/uview-plus/types/comps/switch.d.ts +73 -0
  799. package/uview-plus/types/comps/tabbar.d.ts +54 -0
  800. package/uview-plus/types/comps/tabbarItem.d.ts +52 -0
  801. package/uview-plus/types/comps/tabs.d.ts +85 -0
  802. package/uview-plus/types/comps/tag.d.ts +93 -0
  803. package/uview-plus/types/comps/text.d.ts +110 -0
  804. package/uview-plus/types/comps/textarea.d.ts +158 -0
  805. package/uview-plus/types/comps/toast.d.ts +63 -0
  806. package/uview-plus/types/comps/tooltip.d.ts +71 -0
  807. package/uview-plus/types/comps/transition.d.ts +61 -0
  808. package/uview-plus/types/comps/upload.d.ts +204 -0
  809. package/uview-plus/types/comps.d.ts +101 -0
  810. package/uview-plus/types/index.d.ts +172 -0
  811. package/uview-plus/types/package.json +26 -0
  812. package/uview-ui/changelog.md +26 -0
  813. package/uview-ui/components/u--form/u--form.vue +1 -1
  814. package/uview-ui/components/u--image/u--image.vue +1 -1
  815. package/uview-ui/components/u--input/u--input.vue +1 -1
  816. package/uview-ui/components/u--text/u--text.vue +1 -1
  817. package/uview-ui/components/u--textarea/u--textarea.vue +1 -1
  818. package/uview-ui/components/u-action-sheet/props.js +1 -1
  819. package/uview-ui/components/u-action-sheet/style.css +1 -1
  820. package/uview-ui/components/u-avatar/style.css +1 -0
  821. package/uview-ui/components/u-avatar/style.scss +1 -0
  822. package/uview-ui/components/u-button/nvue-parse.scss +1 -1
  823. package/uview-ui/components/u-button/style.css +2 -2
  824. package/uview-ui/components/u-button/u-button.vue +7 -2
  825. package/uview-ui/components/u-button/vue-parse.scss +1 -1
  826. package/uview-ui/components/u-car-keyboard/style.css +1 -1
  827. package/uview-ui/components/u-checkbox/u-checkbox.vue +2 -2
  828. package/uview-ui/components/u-circle-progress/style.css +6 -6
  829. package/uview-ui/components/u-col/style.css +13 -13
  830. package/uview-ui/components/u-datetime-picker/props.js +4 -0
  831. package/uview-ui/components/u-datetime-picker/u-datetime-picker.vue +13 -2
  832. package/uview-ui/components/u-form-item/u-form-item.vue +1 -1
  833. package/uview-ui/components/u-icon/style.css +1 -1
  834. package/uview-ui/components/u-image/u-image.vue +3 -2
  835. package/uview-ui/components/u-input/style.css +3 -0
  836. package/uview-ui/components/u-input/style.scss +8 -0
  837. package/uview-ui/components/u-input/u-input.vue +5 -5
  838. package/uview-ui/components/u-loading-icon/style.css +1 -1
  839. package/uview-ui/components/u-loading-page/style.css +2 -2
  840. package/uview-ui/components/u-modal/props.js +5 -0
  841. package/uview-ui/components/u-modal/u-modal.vue +1 -1
  842. package/uview-ui/components/u-number-keyboard/style.css +2 -2
  843. package/uview-ui/components/u-parse/u-parse.vue +1 -1
  844. package/uview-ui/components/u-picker/u-picker.vue +5 -2
  845. package/uview-ui/components/u-popup/u-popup.vue +1 -1
  846. package/uview-ui/components/u-radio/props.js +1 -1
  847. package/uview-ui/components/u-radio/u-radio.vue +2 -2
  848. package/uview-ui/components/u-search/style.css +1 -1
  849. package/uview-ui/components/u-skeleton/u-skeleton.vue +2 -2
  850. package/uview-ui/components/u-steps-item/u-steps-item.vue +2 -2
  851. package/uview-ui/components/u-subsection/style.css +1 -1
  852. package/uview-ui/components/u-swipe-action-item/style.css +2 -2
  853. package/uview-ui/components/u-tabs/u-tabs.vue +10 -1
  854. package/uview-ui/components/u-toast/style.css +1 -1
  855. package/uview-ui/components/u-tooltip/u-tooltip.vue +1 -0
  856. package/uview-ui/components/u-upload/style.css +7 -4
  857. package/uview-ui/components/u-upload/style.scss +6 -0
  858. package/uview-ui/components/u-upload/u-upload.vue +6 -1
  859. package/uview-ui/index.js +51 -52
  860. package/uview-ui/libs/config/config.js +2 -2
  861. package/uview-ui/libs/config/props/datetimePicker.js +1 -0
  862. package/uview-ui/libs/config/props/modal.js +2 -1
  863. package/uview-ui/libs/mixin/mixin.js +3 -6
  864. package/uview-ui/package.json +5 -8
  865. package/plugins/uni-upgrade.js +0 -294
  866. package/uview-plus/components/u-slider/nvue - /345/211/257/346/234/254.js" +0 -175
  867. package/uview-plus/libs/config/props/icon.js +0 -36
  868. package/uview-plus/libs/config/props/tag.js +0 -29
  869. package/uview-plus/libs/config/props/transition.js +0 -18
  870. /package/uview-plus/{libs/config/props → components/u-alert}/alert.js +0 -0
  871. /package/uview-plus/{libs/config/props → components/u-avatar}/avatar.js +0 -0
  872. /package/uview-plus/{libs/config/props → components/u-car-keyboard}/carKeyboard.js +0 -0
  873. /package/uview-plus/{libs/config/props → components/u-cell}/cell.js +0 -0
  874. /package/uview-plus/{libs/config/props → components/u-cell-group}/cellGroup.js +0 -0
  875. /package/uview-plus/{libs/config/props → components/u-checkbox}/checkbox.js +0 -0
  876. /package/uview-plus/{libs/config/props → components/u-circle-progress}/circleProgress.js +0 -0
  877. /package/uview-plus/{libs/config/props → components/u-code}/code.js +0 -0
  878. /package/uview-plus/{libs/config/props → components/u-code-input}/codeInput.js +0 -0
  879. /package/uview-plus/{libs/config/props → components/u-col}/col.js +0 -0
  880. /package/uview-plus/{libs/config/props → components/u-collapse}/collapse.js +0 -0
  881. /package/uview-plus/{libs/config/props → components/u-count-down}/countDown.js +0 -0
  882. /package/uview-plus/{libs/config/props → components/u-count-to}/countTo.js +0 -0
  883. /package/uview-plus/{libs/config/props → components/u-divider}/divider.js +0 -0
  884. /package/uview-plus/{libs/config/props → components/u-empty}/empty.js +0 -0
  885. /package/uview-plus/{libs/config/props → components/u-gap}/gap.js +0 -0
  886. /package/uview-plus/{libs/config/props → components/u-grid}/grid.js +0 -0
  887. /package/uview-plus/{libs/config/props → components/u-grid-item}/gridItem.js +0 -0
  888. /package/uview-plus/{libs/config/props → components/u-image}/image.js +0 -0
  889. /package/uview-plus/{libs/config/props → components/u-index-anchor}/indexAnchor.js +0 -0
  890. /package/uview-plus/{libs/config/props → components/u-keyboard}/keyboard.js +0 -0
  891. /package/uview-plus/{libs/config/props → components/u-line}/line.js +0 -0
  892. /package/uview-plus/{libs/config/props → components/u-line-progress}/lineProgress.js +0 -0
  893. /package/uview-plus/{libs/config/props → components/u-list}/list.js +0 -0
  894. /package/uview-plus/{libs/config/props → components/u-list-item}/listItem.js +0 -0
  895. /package/uview-plus/{libs/config/props → components/u-loadmore}/loadmore.js +0 -0
  896. /package/uview-plus/{libs/config/props → components/u-no-network}/noNetwork.js +0 -0
  897. /package/uview-plus/{libs/config/props → components/u-notify}/notify.js +0 -0
  898. /package/uview-plus/{libs/config/props → components/u-number-keyboard}/numberKeyboard.js +0 -0
  899. /package/uview-plus/{libs/config/props → components/u-overlay}/overlay.js +0 -0
  900. /package/uview-plus/{libs/config/props → components/u-parse}/parse.js +0 -0
  901. /package/uview-plus/{libs/config/props → components/u-radio}/radio.js +0 -0
  902. /package/uview-plus/{libs/config/props → components/u-rate}/rate.js +0 -0
  903. /package/uview-plus/{libs/config/props → components/u-read-more}/readMore.js +0 -0
  904. /package/uview-plus/{libs/config/props → components/u-row}/row.js +0 -0
  905. /package/uview-plus/{libs/config/props → components/u-row-notice}/rowNotice.js +0 -0
  906. /package/uview-plus/{libs/config/props → components/u-scroll-list}/scrollList.js +0 -0
  907. /package/uview-plus/{libs/config/props → components/u-section}/section.js +0 -0
  908. /package/uview-plus/{libs/config/props → components/u-skeleton}/skeleton.js +0 -0
  909. /package/uview-plus/{libs/config/props → components/u-steps}/steps.js +0 -0
  910. /package/uview-plus/{libs/config/props → components/u-steps-item}/stepsItem.js +0 -0
  911. /package/uview-plus/{libs/config/props → components/u-sticky}/sticky.js +0 -0
  912. /package/uview-plus/{libs/config/props → components/u-subsection}/subsection.js +0 -0
  913. /package/uview-plus/{libs/config/props → components/u-swipe-action}/swipeAction.js +0 -0
  914. /package/uview-plus/{libs/config/props → components/u-swiper-indicator}/swipterIndicator.js +0 -0
  915. /package/uview-plus/{libs/config/props → components/u-switch}/switch.js +0 -0
  916. /package/uview-plus/{libs/config/props → components/u-tabbar}/tabbar.js +0 -0
  917. /package/uview-plus/{libs/config/props → components/u-tabbar-item}/tabbarItem.js +0 -0
  918. /package/uview-plus/{libs/config/props → components/u-textarea}/textarea.js +0 -0
@@ -0,0 +1,864 @@
1
+ <template>
2
+ <view class="u-sku" v-if="showSkuPopup" :class="skuPopupStyleShow ? 'show' : 'hide'" @click="isMaskClose ? close() : ''">
3
+ <view class="shopSpecsPopup" :class="shopSpecsPopupStyleShow ? 'show' : 'hide'" @click.stop>
4
+ <image
5
+ class="close"
6
+ src="data:image/png;base64,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"
7
+ @click="close"
8
+ ></image>
9
+ <view class="content">
10
+ <view class="info">
11
+ <image v-if="!isUseImgSku" class="cover" :src="selectSku.logo || defaultCover" mode=""></image>
12
+ <view class="right t-w" :class="{ useImgSku: isUseImgSku }">
13
+ <view class="price">
14
+ <text class="uity" :style="{ color: themeRGB }">¥</text>
15
+ <text class="value" :style="{ color: themeRGB }">
16
+ {{ selectSku.id !== undefined ? selectSku.price : `${showAreaPrice[0]}-${showAreaPrice[1]}` }}
17
+ </text>
18
+ </view>
19
+ <text class="stock" v-if="showStockNum">
20
+ 库存: {{ selectSku.id !== undefined ? selectSku.stock : `${showAreaStock[0]}-${showAreaStock[1]}` }}
21
+ </text>
22
+ <text class="actSkuStr">
23
+ {{ getSelectedSkuAttrStr }}
24
+ </text>
25
+ </view>
26
+ </view>
27
+ <view class="number">
28
+ <text class="key">数量</text>
29
+ <u-number-box
30
+ width="200px"
31
+ integer
32
+ v-model="num"
33
+ :min="selectSku.stock == 0 ? 0 : 1"
34
+ :max="selectSku.id ? selectSku.stock : showAreaStock[1]"
35
+ ></u-number-box>
36
+ </view>
37
+ <scroll-view :style="[specsListMaxHeight]" scroll-y="true" class="specsList">
38
+ <view class="item" v-for="(skuArr, skuArrKey) in r.result" :key="skuArrKey">
39
+ <text class="title">{{ skuArrKey }}</text>
40
+ <view class="specsValueList">
41
+ <view
42
+ class="specs"
43
+ v-for="(sku, skuKey) in skuArr"
44
+ :key="skuKey"
45
+ :style="[specsStyle(sku)]"
46
+ @click="bindEvent(sku, skuArr, skuArrKey)"
47
+ >
48
+ <!-- 带有图片的sku -->
49
+ <view v-if="sku.img" class="specs_img_box">
50
+ <!-- 禁用遮罩层 -->
51
+ <view class="specs_img_box_mask"></view>
52
+ <!-- 图片 -->
53
+ <image
54
+ class="specs_img_box_cover"
55
+ :src="sku.img"
56
+ :style="{
57
+ borderRadius: sku.img ? '15rpx' : '10rpx'
58
+ }"
59
+ ></image>
60
+ <!-- 预览按钮 -->
61
+ <view class="specs_img_box_preview" @click.stop="preview(sku.img)">
62
+ <image
63
+ class="img"
64
+ src="data:image/png;base64,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"
65
+ ></image>
66
+ </view>
67
+ <!-- 文字 -->
68
+ <text
69
+ class="specs_img_box_text t-c"
70
+ :style="{
71
+ color: sku.active ? themeRGB : '#999999',
72
+ borderBottomLeftRadius: sku.img ? '15rpx' : '10rpx',
73
+ borderBottomRightRadius: sku.img ? '15rpx' : '10rpx',
74
+ textDecoration: sku.discard ? 'line-through' : ''
75
+ }"
76
+ >
77
+ {{ sku.value }}
78
+ </text>
79
+ </view>
80
+ <!-- 普通sku -->
81
+ <text
82
+ v-else
83
+ class="specs_common"
84
+ :style="{
85
+ backgroundColor: sku.active ? themeRGBA : '',
86
+ color: sku.active ? themeRGB : '#999999',
87
+ textDecoration: sku.discard ? 'line-through' : ''
88
+ }"
89
+ >
90
+ {{ sku.value }}
91
+ </text>
92
+ </view>
93
+ </view>
94
+ </view>
95
+ </scroll-view>
96
+ </view>
97
+ <view class="btnBox">
98
+ <view
99
+ class="confirm"
100
+ :style="{
101
+ background: selectSku.id && selectSku.stock * 1 < 1 ? '#b4b4b4' : themeRGB
102
+ }"
103
+ @click="confirm"
104
+ >
105
+ <text class="confirm-text">
106
+ {{ btnConfirmShowText }}
107
+ </text>
108
+ </view>
109
+ </view>
110
+ </view>
111
+ </view>
112
+ </template>
113
+
114
+ <script>
115
+ // 引入 CryptoJS 库
116
+ import CryptoJS from 'crypto-js';
117
+ import { mpMixin } from '../../libs/mixin/mpMixin.js';
118
+ import { mixin } from '../../libs/mixin/mixin.js';
119
+ import { props } from './props.js';
120
+ /**
121
+ * geek-sku
122
+ * @description 商品sku组件。
123
+ * @tutorial https://ijry.github.io/uview-plus/components/sku.html
124
+ * @property {Array} data 源数据。
125
+ * @property {Boolean} modelValue 是否显示sku组件(默认值: false, v3显示)。
126
+ * @property {Boolean} value 是否显示sku组件(默认值: false, v2显示)。
127
+ * @property {Boolean} isMaskClose 是否可以点击遮罩层关闭(默认值: false)。
128
+ * @property {Boolean} isSelectMinPriceSku 是否默认选中最低价格的sku(默认值: true)。
129
+ * @property {Boolean} selectSkuIndex 默认选中的sku下标。
130
+ * @property {String} defaultCover 默认封面图,用于没有选中完整的sku时展示。
131
+ * @property {Number} defaultNum 默认购买商品数量。
132
+ * @property {Array} themeColor 主题色,需要传入一个数组长度为3的数组,分别对应rgb三个颜色的值,例如: [84, 164, 255]。
133
+ * @property {String} btnConfirmText 确认按钮文字(默认值: '确认')。
134
+ * @property {Boolean} skuUnrelatedDisabled 不相关sku是否禁用(默认值: false)。
135
+ * @property {Object} skuDisabledStyle sku禁用样式。
136
+ * @property {String} notStockText 库存不足文字(默认值: '库存不足')。
137
+ * @property {String} notSelectSku 未选择完整的sku时的文字提示(默认值: '请选择完整的sku属性')。
138
+ * @property {Boolean} showStockNum 是否展示库存数量。
139
+ * @event {Function} confirm 点击确认按钮时触发的事件,会返回e, e = { sku, skuText , num },分别对应选中的sku值 、sku属性名 、输入框内的数量。
140
+ * @event {Function} skuChange sku发生变化时出发的事件,如果有选中完整的sku则会返回该sku,否则会返回{}。
141
+ * @event {Function} close 关闭sku组件触发事件。
142
+ * @event {Function} open 打开sku组件触发事件。
143
+ * @event {Function} numChange 输入框内数量发生改变时触发事件。
144
+ * @example <u-sku-wu
145
+ v-model="skuShow"
146
+ :data="skus"
147
+ :defaultCover="logo"
148
+ @skuChange="skuChange"
149
+ @confirm="buyShop"
150
+ >
151
+ </u-sku-wu>
152
+ */
153
+ export default {
154
+ name: 'u-sku-wu',
155
+ mixins: [mpMixin, mixin, props],
156
+ // data() 返回的属性将会成为响应式的状态
157
+ // 并且暴露在 `this` 上
158
+ data() {
159
+ return {
160
+ // sku所有属性得可能性集合
161
+ res: {},
162
+ // 拼接得字符
163
+ spliter: '\u2299',
164
+ // 组合数据
165
+ r: {},
166
+ // sku属性名合集
167
+ // 机身颜色: '深空黑色',
168
+ // 储存容量: '128G',
169
+ // 套装: '快充套装',
170
+ // keys = [机身颜色, 储存容量, 套装]
171
+ keys: [],
172
+ // 选中的sku的副本
173
+ selectedCache: [],
174
+ // 选中的sku
175
+ selectSku: {},
176
+ // 展示的区间价格
177
+ showAreaPrice: [0, 0],
178
+ // 展示的区间库存
179
+ showAreaStock: [0, 0],
180
+ // 购买的数量
181
+ num: 1,
182
+ // 主题色RGB
183
+ themeRGB: '',
184
+ // 主题色RGBA
185
+ themeRGBA: '',
186
+ // 是否使用带图sku
187
+ isUseImgSku: false,
188
+ // 是否v3
189
+ // #ifdef VUE3
190
+ isV3: true,
191
+ // #endif
192
+ // #ifndef VUE3
193
+ isV3: false,
194
+ // #endif
195
+ // 显示sku
196
+ showSkuPopup: false,
197
+ // 从低向上的动画显示
198
+ shopSpecsPopupStyleShow: false,
199
+ // 透明度消失动画, 让他关闭时看上不不那么生硬
200
+ skuPopupStyleShow: false
201
+ };
202
+ },
203
+ // methods 是一些用来更改状态与触发更新的函数
204
+ methods: {
205
+ /**
206
+ * 计算组合数据
207
+ */
208
+ combineAttr(data, keys) {
209
+ var allKeys = [];
210
+ var result = {};
211
+
212
+ for (var i = 0; i < data.length; i++) {
213
+ var item = data[i].sku_attrs;
214
+ var values = [];
215
+
216
+ for (var j = 0; j < keys.length; j++) {
217
+ let key = keys[j];
218
+ // 属性名
219
+ let attr_info = this.getObjAppointAttr(item[key]);
220
+
221
+ if (!result[key]) result[key] = [];
222
+ if (result[key].indexOf(attr_info.value) < 0) result[key].push(item[key]);
223
+
224
+ values.push(attr_info.value);
225
+ }
226
+
227
+ allKeys.push({
228
+ path: values.join(this.spliter),
229
+ sku: data[i].id,
230
+ stock: data[i].stock
231
+ });
232
+ }
233
+
234
+ for (let key in result) {
235
+ let obj = {};
236
+ result[key].forEach((item) => {
237
+ // 属性名
238
+ let attr_info = this.getObjAppointAttr(item);
239
+ // 如果本次的属性不存在 则 将该属性设置为空对象
240
+ if (!obj[attr_info.name]) obj[attr_info.name] = {};
241
+ // 本次要操作的属性 下面得赋值是为了防止已有属性被覆盖
242
+ obj[attr_info.name].value = attr_info.value;
243
+ obj[attr_info.name].active = false;
244
+ obj[attr_info.name].disabled = false;
245
+ // 如果不想关sku需要禁用
246
+ if (this.skuUnrelatedDisabled) {
247
+ obj[attr_info.name].discard = false; // 是否废弃
248
+ }
249
+
250
+ // 如果该sku属性是对象则取其中的name属性
251
+ if (Object.prototype.toString.call(item) === '[object Object]') {
252
+ obj[attr_info.name] = {
253
+ ...obj[attr_info.name],
254
+ ...item
255
+ };
256
+ this.isUseImgSku = true;
257
+ }
258
+ });
259
+ result[key] = obj;
260
+ }
261
+
262
+ return {
263
+ result: result,
264
+ items: allKeys
265
+ };
266
+ },
267
+ getAllKeys(arr) {
268
+ var result = [];
269
+ for (var i = 0; i < arr.length; i++) {
270
+ result.push(arr[i].path);
271
+ }
272
+ return result;
273
+ },
274
+ /**
275
+ * 取得集合的所有子集「幂集」
276
+ arr = [1,2,3]
277
+
278
+ i = 0, ps = [[]]:
279
+ j = 0; j < ps.length => j < 1:
280
+ i=0, j=0 ps.push(ps[0].concat(arr[0])) => ps.push([].concat(1)) => [1]
281
+ ps = [[], [1]]
282
+
283
+ i = 1, ps = [[], [1]] :
284
+ j = 0; j < ps.length => j < 2
285
+ i=1, j=0 ps.push(ps[0].concat(arr[1])) => ps.push([].concat(2)) => [2]
286
+ i=1, j=1 ps.push(ps[1].concat(arr[1])) => ps.push([1].concat(2)) => [1,2]
287
+ ps = [[], [1], [2], [1,2]]
288
+
289
+ i = 2, ps = [[], [1], [2], [1,2]]
290
+ j = 0; j < ps.length => j < 4
291
+ i=2, j=0 ps.push(ps[0].concat(arr[2])) => ps.push([3]) => [3]
292
+ i=2, j=1 ps.push(ps[1].concat(arr[2])) => ps.push([1, 3]) => [1, 3]
293
+ i=2, j=2 ps.push(ps[2].concat(arr[2])) => ps.push([2, 3]) => [2, 3]
294
+ i=2, j=3 ps.push(ps[3].concat(arr[2])) => ps.push([2, 3]) => [1, 2, 3]
295
+ ps = [[], [1], [2], [1,2], [3], [1, 3], [2, 3], [1, 2, 3]]
296
+ */
297
+ powerset(arr) {
298
+ var ps = [[]];
299
+ for (var i = 0; i < arr.length; i++) {
300
+ for (var j = 0, len = ps.length; j < len; j++) {
301
+ ps.push(ps[j].concat(arr[i]));
302
+ }
303
+ }
304
+ return ps;
305
+ },
306
+ /**
307
+ * 生成所有子集是否可选、库存状态 map
308
+ */
309
+ buildResult(items) {
310
+ var allKeys = this.getAllKeys(items);
311
+
312
+ for (var i = 0; i < allKeys.length; i++) {
313
+ var curr = allKeys[i];
314
+ var sku = items[i].sku;
315
+ var values = curr.split(this.spliter);
316
+ var allSets = this.powerset(values);
317
+
318
+ // 每个组合的子集
319
+ for (var j = 0; j < allSets.length; j++) {
320
+ var set = allSets[j];
321
+ // 使用CryptoJS的MD5对原属性名加密 用来禁绝因特殊符号带来的属性名错误
322
+ var key = CryptoJS.MD5(set.join(this.spliter)).toString();
323
+
324
+ if (this.res[key]) {
325
+ this.res[key].skus.push(sku);
326
+ } else {
327
+ this.res[key] = {
328
+ skus: [sku]
329
+ };
330
+ }
331
+ }
332
+ }
333
+ },
334
+ trimSpliter(str, spliter) {
335
+ // ⊙abc⊙ => abc
336
+ // ⊙a⊙⊙b⊙c⊙ => a⊙b⊙c
337
+ var reLeft = new RegExp('^' + spliter + '+', 'g');
338
+ var reRight = new RegExp(spliter + '+$', 'g');
339
+ var reSpliter = new RegExp(spliter + '+', 'g');
340
+ return str.replace(reLeft, '').replace(reRight, '').replace(reSpliter, spliter);
341
+ },
342
+ /**
343
+ * 获取当前选中的属性
344
+ */
345
+ getSelectedItem() {
346
+ var result = [];
347
+
348
+ let resObj = this.r.result;
349
+ if (resObj) {
350
+ Object.keys(resObj).forEach((key1, index) => {
351
+ result[index] = '';
352
+ Object.keys(resObj[key1]).forEach((key2) => {
353
+ // 查找选中的属性
354
+ let item = resObj[key1][key2];
355
+ item.active ? (result[index] = item.value) : '';
356
+ });
357
+ });
358
+ }
359
+
360
+ return result;
361
+ },
362
+ /**
363
+ * 无效属性点击
364
+ */
365
+ handleDisableClick(sku, skuArrKey, index) {
366
+ this.selectedCache[index] = sku;
367
+
368
+ // 清空所有sku选中属性
369
+ let resObj = this.r.result;
370
+ Object.keys(resObj).forEach((key1, index) => {
371
+ Object.keys(resObj[key1]).forEach((key2) => {
372
+ // 查找选中的属性
373
+ let item = resObj[key1][key2];
374
+ item.active = false;
375
+ });
376
+ });
377
+
378
+ // 删除无效属性的禁止状态 并 选中
379
+ sku.active = true;
380
+ sku.disabled = false;
381
+
382
+ this.updateStatus(this.getSelectedItem());
383
+
384
+ /**
385
+ * 恢复原来已选属性
386
+ * 遍历所有非当前属性行
387
+ * 1. 与 selectedCache 对比
388
+ * 2. 如果要恢复的属性存在(非 disable)且 和当前*未高亮行*已选择属性的*可组合*),高亮原来已选择的属性且更新
389
+ * 3. 否则什么也不做
390
+ */
391
+ for (var i = 0; i < this.keys.length; i++) {
392
+ var item = this.keys[i];
393
+ if (item == skuArrKey) continue;
394
+
395
+ // 没有被禁用的属性 (可以被选择)
396
+ if (this.selectedCache[i] && !this.selectedCache[i].disabled && !this.selectedCache[i].discard) {
397
+ this.selectedCache[i].active = true;
398
+ this.updateStatus(this.getSelectedItem());
399
+ }
400
+ }
401
+ },
402
+
403
+ /**
404
+ * 更新所有属性状态
405
+ */
406
+ updateStatus(selected) {
407
+ // 遍历sku属性名合集
408
+ for (var i = 0; i < this.keys.length; i++) {
409
+ // 如果这段看不懂将console.log的注释解开即可
410
+ var key = this.keys[i];
411
+ var data = this.r.result[key];
412
+ var hasActive = !!selected[i];
413
+ var copy = selected.slice();
414
+ // console.log(key, '属性名合集')
415
+ // console.log(i)
416
+ // console.log(copy, '已选属性');
417
+ // 遍历data所有属性
418
+ Object.keys(data).forEach((dataKey) => {
419
+ var item = data[dataKey];
420
+ if (selected[i] == item.value) return;
421
+ copy[i] = item.value;
422
+ // 加密后的属性名
423
+ var curr = CryptoJS.MD5(this.trimSpliter(copy.join(this.spliter), this.spliter)).toString();
424
+ // 从sku组合合集中找出这项
425
+ var resCurr = this.res[curr];
426
+ // console.log(this.res, 'sku组合合集')
427
+ // console.log(curr, '合集加密名称')
428
+ // console.log(this.trimSpliter(copy.join(this.spliter), this.spliter))
429
+ // 如果存在这种组合
430
+ if (resCurr) {
431
+ // console.log(resCurr)
432
+ if (this.skuUnrelatedDisabled) {
433
+ item.discard = false;
434
+ } else {
435
+ item.disabled = false;
436
+ }
437
+ } else {
438
+ if (this.skuUnrelatedDisabled) {
439
+ item.discard = true;
440
+ } else {
441
+ item.disabled = true;
442
+ }
443
+ item.active = false;
444
+ }
445
+ });
446
+ }
447
+
448
+ // 获取当前选中的属性
449
+ var result = selected.slice();
450
+ // 如果所有属性都已选中
451
+ if (result.every((item) => item)) {
452
+ // 将属性合成r.items中的sku名称
453
+ let name = this.trimSpliter(result.join(this.spliter), this.spliter);
454
+ // 查找sku
455
+ let sku = this.r.items.find((item) => item.path == name);
456
+ // 如果找到该sku
457
+ if (sku) {
458
+ // 根据sku的sku属性(唯一标识,通常来说会是id)找到源数据中的匹配的那一项并选中;
459
+ this.selectSku = JSON.parse(JSON.stringify(this.data.find((item) => item.id == sku.sku)));
460
+ // 重置数量
461
+ this.num = Number(this.defaultNum);
462
+ }
463
+ } else {
464
+ this.selectSku = {};
465
+ }
466
+ },
467
+ bindEvent(sku, skuArr, skuArrKey) {
468
+ // 如果该sku属性被废弃则直接返回
469
+ if (sku.discard) return;
470
+
471
+ if (!sku.active) {
472
+ // 清空当前行的所有sku选中属性
473
+ Object.keys(skuArr).forEach((key) => {
474
+ skuArr[key].active = false;
475
+ });
476
+
477
+ sku.active = true;
478
+
479
+ // 当前选中的keys的index
480
+ let index = this.keys.findIndex((item) => item == skuArrKey);
481
+
482
+ if (sku.disabled) {
483
+ this.handleDisableClick(sku, skuArrKey, index);
484
+ } else {
485
+ this.selectedCache[index] = sku;
486
+ }
487
+ } else {
488
+ sku.active = false;
489
+ // 清空所有sku禁用状态
490
+ let resObj = this.r.result;
491
+ Object.keys(resObj).forEach((key1, index) => {
492
+ Object.keys(resObj[key1]).forEach((key2) => {
493
+ // 查找选中的属性
494
+ let item = resObj[key1][key2];
495
+ if (this.skuUnrelatedDisabled) {
496
+ item.discard = false;
497
+ } else {
498
+ item.disabled = false;
499
+ }
500
+ });
501
+ });
502
+ }
503
+
504
+ this.updateStatus(this.getSelectedItem());
505
+ },
506
+
507
+ /**
508
+ * 选中最便宜价格的sku
509
+ */
510
+ selectMinPriceSku() {
511
+ let minPriceSku = null;
512
+ this.data.forEach((sku) => {
513
+ // 如果为空则直接赋值
514
+ if (minPriceSku === null) {
515
+ minPriceSku = sku;
516
+ } else if (minPriceSku.price > sku.price) {
517
+ // 如果比最小价格低 就赋值
518
+ minPriceSku = sku;
519
+ }
520
+ });
521
+
522
+ for (var key in minPriceSku.sku_attrs) {
523
+ let attr_info = this.getObjAppointAttr(minPriceSku.sku_attrs[key]);
524
+ // 找出对应项并选中
525
+ this.r.result[key][attr_info.name].active = true;
526
+ }
527
+ this.updateStatus(this.getSelectedItem());
528
+ },
529
+
530
+ /**
531
+ * 选中某项sku
532
+ * @param {Number} index 选中的skuIndex
533
+ */
534
+ selectAppointSku(index) {
535
+ // 视图更新后在更新选中的skuIndex
536
+ this.$nextTick(() => {
537
+ if (!this.data[index]) return console.error('请输入正确的sku下标');
538
+ let sku_attrs = this.data[index].sku_attrs;
539
+ for (var key in sku_attrs) {
540
+ let attr_info = this.getObjAppointAttr(sku_attrs[key]);
541
+ // 找出对应项并选中
542
+ this.r.result[key][attr_info.name].active = true;
543
+ }
544
+ this.updateStatus(this.getSelectedItem());
545
+ });
546
+ },
547
+
548
+ /**
549
+ * 找出区间数据
550
+ */
551
+ findAreaData() {
552
+ let minPrice = null;
553
+ let maxPrice = 0;
554
+ let minStock = null;
555
+ let maxStock = 0;
556
+ this.data.forEach((sku) => {
557
+ // 如果最小价格为空则直接赋值
558
+ if (minPrice === null) {
559
+ minPrice = sku.price;
560
+ } else if (minPrice * 1 > sku.price * 1) {
561
+ // 如果比最小价格低 就赋值
562
+ minPrice = sku.price;
563
+ }
564
+ // 如果大于最大价格则赋值
565
+ if (maxPrice < sku.price) {
566
+ maxPrice = sku.price;
567
+ }
568
+
569
+ // 如果最小库存为空则直接赋值
570
+ if (minStock === null) {
571
+ minStock = sku.stock;
572
+ } else if (minStock * 1 > sku.stock * 1) {
573
+ // 如果比最小库存少 就赋值
574
+ minStock = sku.stock;
575
+ }
576
+ // 如果大于最大库存则赋值
577
+ if (maxStock * 1 < sku.stock * 1) {
578
+ maxStock = sku.stock;
579
+ }
580
+ });
581
+ // 赋值区间
582
+ this.showAreaPrice = [minPrice, maxPrice];
583
+ this.showAreaStock = [minStock, maxStock];
584
+ },
585
+
586
+ // 初始化
587
+ init(data) {
588
+ this.res = {};
589
+ this.r = {};
590
+ this.keys = [];
591
+ this.selectedCache = [];
592
+ this.isUseImgSku = false;
593
+
594
+ // skus 长度为空则没必要往下继续进行了
595
+ if (!data.length) return;
596
+
597
+ // 拼接主题色
598
+ this.joinThemColor(this.themeColor);
599
+
600
+ // 找出sku的可选属性的标题
601
+ for (var attr_key in data[0].sku_attrs) {
602
+ // 如果这个属性未定义存则跳过
603
+ if (!(attr_key in data[0].sku_attrs)) continue;
604
+ // 如果这个属性未赋值 或 不存在 则删除该属性
605
+ if (data[0].sku_attrs[attr_key] === null || data[0].sku_attrs[attr_key] === undefined) delete data[0].sku_attrs[attr_key];
606
+ // 否则添加属性
607
+ else this.keys.push(attr_key);
608
+ }
609
+
610
+ //计算组合数据
611
+ this.r = this.combineAttr(data, this.keys);
612
+
613
+ // 生成所有子集是否可选、库存状态 map
614
+ this.buildResult(this.r.items);
615
+
616
+ // 找到区间数据
617
+ this.findAreaData();
618
+
619
+ // 如果无库存不展示 则 更新一下数据 因为有可能某个属性没有库存
620
+ if (this.notSelectSku) {
621
+ this.updateStatus(this.getSelectedItem());
622
+ }
623
+
624
+ // 如果需要选中某项sku
625
+ if (this.selectSkuIndex !== null && this.selectSkuIndex !== undefined && this.selectSkuIndex !== '') {
626
+ this.selectAppointSku(Number(this.selectSkuIndex));
627
+ } else if (this.isSelectMinPriceSku) {
628
+ // 如果需要选中默认最便宜的sku
629
+ this.selectMinPriceSku();
630
+ }
631
+ },
632
+
633
+ // 确认事件
634
+ confirm() {
635
+ // 如果已有选中的完整sku
636
+ if (this.selectSku.id) {
637
+ // 如果有库存
638
+ if (this.selectSku.stock * 1 > 0) {
639
+ // 按钮确认事件
640
+ this.$emit('confirm', {
641
+ sku: this.selectSku,
642
+ skuText: this.getSelectedItem(),
643
+ num: this.num * 1
644
+ });
645
+ }
646
+ } else {
647
+ uni.showToast({
648
+ title: this.notSelectSku,
649
+ icon: 'none',
650
+ duration: 1500
651
+ });
652
+ }
653
+ },
654
+
655
+ // 拼接主题色
656
+ joinThemColor(n) {
657
+ this.themeRGB = `rgb(${n[0]}, ${n[1]}, ${n[2]})`;
658
+ this.themeRGBA = `rgba(${n[0]}, ${n[1]}, ${n[2]}, 0.1)`;
659
+ },
660
+
661
+ // 关闭sku组件
662
+ close() {
663
+ // #ifdef VUE3
664
+ this.$emit('update:modelValue', false);
665
+ // #endif
666
+
667
+ // #ifndef VUE3
668
+ this.$emit('input', false);
669
+ // #endif
670
+
671
+ // #ifdef H5
672
+ // fix by mehaotian 处理 h5 滚动穿透的问题
673
+ document.getElementsByTagName('body')[0].style.overflow = 'visible';
674
+ // #endif
675
+
676
+ this.$emit('close');
677
+
678
+ this.skuPopupStyleShow = false;
679
+ this.shopSpecsPopupStyleShow = false;
680
+
681
+ setTimeout(() => {
682
+ this.showSkuPopup = false;
683
+ }, 300);
684
+ },
685
+
686
+ // 打开sku组件
687
+ open() {
688
+ // #ifdef VUE3
689
+ this.$emit('update:modelValue', true);
690
+ // #endif
691
+
692
+ // #ifndef VUE3
693
+ this.$emit('input', true);
694
+ // #endif
695
+
696
+ // #ifdef H5
697
+ // fix by mehaotian 处理 h5 滚动穿透的问题
698
+ document.getElementsByTagName('body')[0].style.overflow = 'hidden';
699
+ // #endif
700
+
701
+ this.$emit('open');
702
+
703
+ this.showSkuPopup = true;
704
+
705
+ setTimeout(() => {
706
+ this.skuPopupStyleShow = true;
707
+ this.shopSpecsPopupStyleShow = true;
708
+ });
709
+ },
710
+
711
+ // 重置购买数量
712
+ resetNum() {
713
+ this.num = Number(this.defaultNum);
714
+ },
715
+
716
+ // 获取对象中指定属性
717
+ getObjAppointAttr(obj, attr = 'name') {
718
+ // 用来储存属性中对应的值
719
+ let value = '';
720
+ // 如果该sku属性是对象则取其中的name属性
721
+ if (Object.prototype.toString.call(obj) === '[object Object]') {
722
+ value = obj[attr];
723
+ } else {
724
+ value = obj;
725
+ }
726
+
727
+ // 使用CryptoJS的MD5对原属性名加密 用来禁绝因特殊符号带来的属性名错误
728
+ let name = CryptoJS.MD5(value).toString();
729
+
730
+ return {
731
+ value,
732
+ name
733
+ };
734
+ },
735
+
736
+ // 预览图片
737
+ preview(img) {
738
+ uni.previewImage({
739
+ urls: [img]
740
+ });
741
+ },
742
+
743
+ // specs样式
744
+ specsStyle(sku) {
745
+ let style = {
746
+ borderRadius: sku.img ? '15rpx' : '10rpx'
747
+ };
748
+ // 选中的样式
749
+ if (sku.active) {
750
+ style.border = `3rpx solid ${this.themeRGB}`;
751
+ } else if (sku.disabled) {
752
+ // 禁用的样式
753
+ style.border = `3rpx solid transparent`;
754
+ style.background = '#f3f3f3';
755
+ } else {
756
+ // 默认状样式 或 废弃样式
757
+ style.background = '#fff';
758
+ style.border = `3rpx solid #e4e4e4`;
759
+ }
760
+
761
+ if (sku.discard) {
762
+ // 废弃的样式
763
+ style = {
764
+ ...style,
765
+ ...this.skuDisabledStyle
766
+ };
767
+ }
768
+
769
+ return style;
770
+ }
771
+ },
772
+ // computed 计算属性
773
+ computed: {
774
+ // 获取已选中的sku属性字符串
775
+ getSelectedSkuAttrStr() {
776
+ let attrArr = this.getSelectedItem();
777
+ // 如果有未选中的数据
778
+ if (attrArr.findIndex((item) => !item) !== -1) {
779
+ // 获取sku属性名
780
+ let resultArr = Object.keys(this.r.result);
781
+ // 未选中的sku属性名
782
+ let noAttrNameArr = [];
783
+ attrArr.forEach((item, index) => {
784
+ if (!item) {
785
+ noAttrNameArr.push(resultArr[index]);
786
+ }
787
+ });
788
+
789
+ return `请选择:${noAttrNameArr.join('、')}`;
790
+ } else {
791
+ return `已选择:${attrArr.join(',')}`;
792
+ }
793
+ return this.getSelectedItem();
794
+ },
795
+ // 获取确认按钮显示文字
796
+ btnConfirmShowText() {
797
+ return this.selectSku.id && this.selectSku.stock * 1 < 1 ? this.notStockText : this.btnConfirmText;
798
+ },
799
+ // 获取 specslist 最大高度
800
+ specsListMaxHeight() {
801
+ let style = {};
802
+ // #ifndef APP-NVUE
803
+ style.maxHeight = '45vh';
804
+ // #endif
805
+ // #ifdef APP-NVUE
806
+ style.height = uni.getWindowInfo().screenHeight * 0.65 + 'rpx';
807
+ // #endif
808
+
809
+ return style;
810
+ }
811
+ },
812
+ // 监听
813
+ watch: {
814
+ data: {
815
+ handler(n) {
816
+ this.init(n);
817
+ },
818
+ deep: true
819
+ },
820
+ // #ifdef VUE3
821
+ modelValue(n) {
822
+ if (n) {
823
+ this.open();
824
+ this.init(this.data);
825
+ } else {
826
+ this.close();
827
+ }
828
+ },
829
+ // #endif
830
+ // #ifndef VUE3
831
+ value(n) {
832
+ if (n) {
833
+ this.open();
834
+ this.init(this.data);
835
+ } else {
836
+ this.close();
837
+ }
838
+ },
839
+ // #endif
840
+ num(n) {
841
+ this.$emit('numChange', n);
842
+ },
843
+ selectSku(n) {
844
+ this.$emit('skuChange', n);
845
+ },
846
+ themeColor(n) {
847
+ this.joinThemColor(n);
848
+ },
849
+ selectSkuIndex(n) {
850
+ this.selectAppointSku(Number(n));
851
+ }
852
+ },
853
+ // 挂载时
854
+ mounted() {
855
+ // 赋值默认购买商品数量
856
+ this.num = Number(this.defaultNum);
857
+ this.init(this.data);
858
+ }
859
+ };
860
+ </script>
861
+
862
+ <style scoped>
863
+ @import './style.css';
864
+ </style>