xiaoe_mp_npm 1.1.21 → 1.1.22-test02

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 (418) hide show
  1. package/.babelrc +10 -10
  2. package/.eslintrc.js +102 -102
  3. package/.gitlab-ci.yml +44 -44
  4. package/.prettierrc.js +34 -34
  5. package/.vscode/extensions.json +4 -4
  6. package/.vscode/settings.json +9 -9
  7. package/LICENSE +21 -21
  8. package/README.md +134 -134
  9. package/gulpfile.js +26 -26
  10. package/miniprogram_dist/AliveInvite/LiveRoomVertical/components/friends/friends.js +181 -181
  11. package/miniprogram_dist/AliveInvite/LiveRoomVertical/components/friends/friends.wxml +25 -25
  12. package/miniprogram_dist/AliveInvite/LiveRoomVertical/index.js +253 -253
  13. package/miniprogram_dist/AliveInvite/LiveRoomVertical/index.less +255 -255
  14. package/miniprogram_dist/AliveInvite/LiveRoomVertical/index.wxml +122 -122
  15. package/miniprogram_dist/CollectionAddress/index.js +288 -288
  16. package/miniprogram_dist/CollectionAddress/index.json +13 -13
  17. package/miniprogram_dist/CollectionAddress/index.less +4 -4
  18. package/miniprogram_dist/CollectionAddress/index.wxml +93 -93
  19. package/miniprogram_dist/ConfirmOrder/components/AddressEdit/index.json +10 -10
  20. package/miniprogram_dist/ConfirmOrder/components/AddressEdit/index.less +123 -123
  21. package/miniprogram_dist/ConfirmOrder/components/AddressEdit/index.wxml +51 -51
  22. package/miniprogram_dist/ConfirmOrder/components/AddressManage/index.js +168 -168
  23. package/miniprogram_dist/ConfirmOrder/components/AddressManage/index.json +7 -7
  24. package/miniprogram_dist/ConfirmOrder/components/AddressManage/index.less +95 -95
  25. package/miniprogram_dist/ConfirmOrder/components/AddressManage/index.wxml +36 -36
  26. package/miniprogram_dist/ConfirmOrder/components/AddressSelect/index.js +160 -160
  27. package/miniprogram_dist/ConfirmOrder/components/AddressSelect/index.json +4 -4
  28. package/miniprogram_dist/ConfirmOrder/components/AddressSelect/index.less +79 -79
  29. package/miniprogram_dist/ConfirmOrder/components/AddressSelect/index.wxml +33 -33
  30. package/miniprogram_dist/ConfirmOrder/components/ChoosePicker/index.js +115 -115
  31. package/miniprogram_dist/ConfirmOrder/components/ChoosePicker/index.json +5 -5
  32. package/miniprogram_dist/ConfirmOrder/components/ChoosePicker/index.less +20 -20
  33. package/miniprogram_dist/ConfirmOrder/components/ChoosePicker/index.wxml +9 -9
  34. package/miniprogram_dist/ConfirmOrder/components/ConfirmOrderContent/index.js +1819 -1819
  35. package/miniprogram_dist/ConfirmOrder/components/ConfirmOrderContent/index.json +27 -27
  36. package/miniprogram_dist/ConfirmOrder/components/ConfirmOrderContent/index.scss +44 -44
  37. package/miniprogram_dist/ConfirmOrder/components/ConfirmOrderContent/index.wxml +225 -225
  38. package/miniprogram_dist/ConfirmOrder/components/GoodsInfo/components/CopGoodsList/index.js +129 -129
  39. package/miniprogram_dist/ConfirmOrder/components/GoodsInfo/components/CopGoodsList/index.json +8 -8
  40. package/miniprogram_dist/ConfirmOrder/components/GoodsInfo/components/CopGoodsList/index.scss +58 -58
  41. package/miniprogram_dist/ConfirmOrder/components/GoodsInfo/components/CopGoodsList/index.wxml +25 -25
  42. package/miniprogram_dist/GoodsItem/index.js +180 -21
  43. package/miniprogram_dist/GoodsItem/index.scss +822 -627
  44. package/miniprogram_dist/GoodsItem/index.wxml +145 -108
  45. package/miniprogram_dist/GoodsItem/index.wxs +40 -40
  46. package/miniprogram_dist/GoodsItem/index.wxss +1149 -461
  47. package/miniprogram_dist/LiveGoodsList/Header/index.js +65 -65
  48. package/miniprogram_dist/LiveGoodsList/Header/index.json +6 -6
  49. package/miniprogram_dist/LiveGoodsList/Header/index.less +45 -45
  50. package/miniprogram_dist/LiveGoodsList/Header/index.scss +157 -137
  51. package/miniprogram_dist/LiveGoodsList/Header/index.wxml +39 -36
  52. package/miniprogram_dist/LiveGoodsList/Header/index.wxss +88 -12
  53. package/miniprogram_dist/LiveGoodsList/README.md +9 -9
  54. package/miniprogram_dist/LiveGoodsList/index.js +29 -10
  55. package/miniprogram_dist/LiveGoodsList/index.less +53 -53
  56. package/miniprogram_dist/LiveGoodsList/index.scss +173 -173
  57. package/miniprogram_dist/LiveGoodsList/index.wxml +9 -1
  58. package/miniprogram_dist/MatchList/index.js +445 -441
  59. package/miniprogram_dist/MatchList/index.json +5 -5
  60. package/miniprogram_dist/MatchList/index.scss +175 -175
  61. package/miniprogram_dist/MatchList/index.wxml +98 -97
  62. package/miniprogram_dist/MemberIntegralMultiplierBar/index.js +196 -196
  63. package/miniprogram_dist/MemberIntegralMultiplierBar/index.json +7 -7
  64. package/miniprogram_dist/MemberIntegralMultiplierBar/index.scss +67 -67
  65. package/miniprogram_dist/MemberIntegralMultiplierBar/index.wxml +8 -8
  66. package/miniprogram_dist/MemberIntegralMultiplierPopup/index.js +54 -54
  67. package/miniprogram_dist/MemberIntegralMultiplierPopup/index.json +7 -7
  68. package/miniprogram_dist/MemberIntegralMultiplierPopup/index.scss +86 -86
  69. package/miniprogram_dist/MemberIntegralMultiplierPopup/index.wxml +48 -48
  70. package/miniprogram_dist/MemberIntegralMultiplierPopup/popup-service.js +18 -18
  71. package/miniprogram_dist/MsgBubble/index.js +312 -0
  72. package/miniprogram_dist/MsgBubble/index.json +7 -0
  73. package/miniprogram_dist/MsgBubble/index.scss +81 -0
  74. package/miniprogram_dist/MsgBubble/index.wxml +19 -0
  75. package/miniprogram_dist/MsgBubble/index.wxss +202 -0
  76. package/miniprogram_dist/ShoppingCartBubble/index.js +336 -156
  77. package/miniprogram_dist/ShoppingCartBubble/index.scss +94 -55
  78. package/miniprogram_dist/ShoppingCartBubble/index.wxml +14 -11
  79. package/miniprogram_dist/ShoppingCartBubble/index.wxss +196 -40
  80. package/miniprogram_dist/Task/TaskBubble/index.json +3 -3
  81. package/miniprogram_dist/Task/TaskBubble/index.scss +125 -125
  82. package/miniprogram_dist/Task/TaskBubble/index.wxml +22 -22
  83. package/miniprogram_dist/Task/TaskIcon/index.js +29 -29
  84. package/miniprogram_dist/Task/TaskIcon/index.json +4 -4
  85. package/miniprogram_dist/Task/TaskIcon/index.scss +70 -70
  86. package/miniprogram_dist/Task/TaskIcon/index.wxml +5 -5
  87. package/miniprogram_dist/Task/TaskPopup/component/RewardList/index.js +52 -52
  88. package/miniprogram_dist/Task/TaskPopup/component/RewardList/index.json +6 -6
  89. package/miniprogram_dist/Task/TaskPopup/component/RewardList/index.scss +39 -39
  90. package/miniprogram_dist/Task/TaskPopup/component/RewardList/index.wxml +23 -23
  91. package/miniprogram_dist/Task/TaskPopup/component/TaskItem/index.js +578 -578
  92. package/miniprogram_dist/Task/TaskPopup/component/TaskItem/index.json +10 -10
  93. package/miniprogram_dist/Task/TaskPopup/component/TaskItem/index.scss +245 -245
  94. package/miniprogram_dist/Task/TaskPopup/component/TaskItem/index.wxml +145 -145
  95. package/miniprogram_dist/Task/TaskPopup/component/TaskItem/index.wxs +7 -7
  96. package/miniprogram_dist/Task/TaskPopup/component/TaskList/index.js +298 -298
  97. package/miniprogram_dist/Task/TaskPopup/component/TaskList/index.json +7 -7
  98. package/miniprogram_dist/Task/TaskPopup/component/TaskList/index.scss +66 -66
  99. package/miniprogram_dist/Task/TaskPopup/component/TaskList/index.wxml +41 -41
  100. package/miniprogram_dist/Task/TaskPopup/component/TaskType/index.js +129 -129
  101. package/miniprogram_dist/Task/TaskPopup/component/TaskType/index.json +13 -13
  102. package/miniprogram_dist/Task/TaskPopup/component/TaskType/index.scss +90 -90
  103. package/miniprogram_dist/Task/TaskPopup/component/TaskType/index.wxml +69 -69
  104. package/miniprogram_dist/Task/TaskPopup/index.js +174 -174
  105. package/miniprogram_dist/Task/TaskPopup/index.json +7 -7
  106. package/miniprogram_dist/Task/TaskPopup/index.scss +166 -166
  107. package/miniprogram_dist/Task/TaskPopup/index.wxml +87 -87
  108. package/miniprogram_dist/Task/TaskQuizPopup/components/quizContent/index.js +131 -131
  109. package/miniprogram_dist/Task/TaskQuizPopup/components/quizContent/index.json +5 -5
  110. package/miniprogram_dist/Task/TaskQuizPopup/components/quizContent/index.scss +191 -191
  111. package/miniprogram_dist/Task/TaskQuizPopup/components/quizContent/index.wxml +64 -64
  112. package/miniprogram_dist/Task/TaskQuizPopup/components/quizContent/index.wxs +78 -78
  113. package/miniprogram_dist/Task/TaskQuizPopup/components/quizRichText/index.js +40 -40
  114. package/miniprogram_dist/Task/TaskQuizPopup/components/quizRichText/index.json +5 -5
  115. package/miniprogram_dist/Task/TaskQuizPopup/components/quizRichText/index.scss +6 -6
  116. package/miniprogram_dist/Task/TaskQuizPopup/components/quizRichText/index.wxml +1 -1
  117. package/miniprogram_dist/Task/TaskQuizPopup/components/wxParse/base.wxml +50 -50
  118. package/miniprogram_dist/Task/TaskQuizPopup/components/wxParse/html2json.js +623 -623
  119. package/miniprogram_dist/Task/TaskQuizPopup/components/wxParse/htmlparser.js +183 -183
  120. package/miniprogram_dist/Task/TaskQuizPopup/components/wxParse/iframeParse.js +216 -216
  121. package/miniprogram_dist/Task/TaskQuizPopup/components/wxParse/loop.wxml +3563 -3563
  122. package/miniprogram_dist/Task/TaskQuizPopup/components/wxParse/showdown.js +2364 -2364
  123. package/miniprogram_dist/Task/TaskQuizPopup/components/wxParse/wxDiscode.js +209 -209
  124. package/miniprogram_dist/Task/TaskQuizPopup/components/wxParse/wxParse.js +269 -269
  125. package/miniprogram_dist/Task/TaskQuizPopup/components/wxParse/wxParse.wxml +1276 -1276
  126. package/miniprogram_dist/Task/TaskQuizPopup/index.js +246 -246
  127. package/miniprogram_dist/Task/TaskQuizPopup/index.json +7 -7
  128. package/miniprogram_dist/Task/TaskQuizPopup/index.scss +158 -158
  129. package/miniprogram_dist/Task/TaskQuizPopup/index.wxml +99 -99
  130. package/miniprogram_dist/Task/common/task.js +55 -55
  131. package/miniprogram_dist/Task/taskQuizRemindPopup/index.js +74 -74
  132. package/miniprogram_dist/Task/taskQuizRemindPopup/index.json +5 -5
  133. package/miniprogram_dist/Task/taskQuizRemindPopup/index.scss +107 -107
  134. package/miniprogram_dist/Task/taskQuizRemindPopup/index.wxml +27 -27
  135. package/miniprogram_dist/Task/taskReceivePopup/coupon/index.js +68 -68
  136. package/miniprogram_dist/Task/taskReceivePopup/coupon/index.json +6 -6
  137. package/miniprogram_dist/Task/taskReceivePopup/coupon/index.scss +123 -123
  138. package/miniprogram_dist/Task/taskReceivePopup/coupon/index.wxml +81 -81
  139. package/miniprogram_dist/Task/taskReceivePopup/coupon/index.wxs +48 -48
  140. package/miniprogram_dist/Task/taskReceivePopup/customPrizes/index.js +44 -44
  141. package/miniprogram_dist/Task/taskReceivePopup/customPrizes/index.json +6 -6
  142. package/miniprogram_dist/Task/taskReceivePopup/customPrizes/index.scss +106 -106
  143. package/miniprogram_dist/Task/taskReceivePopup/customPrizes/index.wxml +38 -38
  144. package/miniprogram_dist/Task/taskReceivePopup/customPrizes/index.wxs +48 -48
  145. package/miniprogram_dist/Task/taskReceivePopup/index.js +47 -47
  146. package/miniprogram_dist/Task/taskReceivePopup/index.json +13 -13
  147. package/miniprogram_dist/Task/taskReceivePopup/index.wxml +32 -32
  148. package/miniprogram_dist/Task/taskReceivePopup/integral/index.js +106 -106
  149. package/miniprogram_dist/Task/taskReceivePopup/integral/index.json +7 -7
  150. package/miniprogram_dist/Task/taskReceivePopup/integral/index.scss +60 -60
  151. package/miniprogram_dist/Task/taskReceivePopup/integral/index.wxml +23 -23
  152. package/miniprogram_dist/TeacherGoodsList/index.js +997 -983
  153. package/miniprogram_dist/TeacherGoodsList/index.json +10 -10
  154. package/miniprogram_dist/TeacherGoodsList/index.scss +178 -178
  155. package/miniprogram_dist/TeacherGoodsList/index.wxml +146 -144
  156. package/miniprogram_dist/common/api/liveGoodsList.js +181 -167
  157. package/miniprogram_dist/common/assets/images/coupon/emptypage.svg +49 -49
  158. package/miniprogram_dist/common/assets/images/coupon/failed.svg +5 -5
  159. package/miniprogram_dist/common/assets/images/coupon/up.svg +21 -21
  160. package/miniprogram_dist/common/assets/images/pay/loading.svg +3 -3
  161. package/miniprogram_dist/common/assets/images/recommend.svg +6 -6
  162. package/miniprogram_dist/common/assets/images/refresh.svg +10 -10
  163. package/miniprogram_dist/common/assets/images/refresh_white.svg +3 -3
  164. package/miniprogram_dist/common/assets/images/wechat.svg +4 -4
  165. package/miniprogram_dist/common/css/index.less +2 -2
  166. package/miniprogram_dist/common/css/theme.less +19 -19
  167. package/miniprogram_dist/common/libs/dataUp/sensorUp.js +91 -91
  168. package/miniprogram_dist/common/libs/playerHttp.js +58 -58
  169. package/miniprogram_dist/common/libs/playerRequestUrl.js +39 -39
  170. package/miniprogram_dist/common/transaction/parameter/channel-info.js +36 -36
  171. package/miniprogram_dist/common/transaction/parameter/delivery-info.js +26 -26
  172. package/miniprogram_dist/common/transaction/parameter/misc-parameter.js +21 -21
  173. package/miniprogram_dist/common/utils/currency.js +52 -52
  174. package/miniprogram_dist/common/utils/getInfoCollectionData.js +59 -59
  175. package/miniprogram_dist/common/utils/image-cdn-slim/constant.js +8 -8
  176. package/miniprogram_dist/common/utils/image-cdn-slim/index.js +7 -7
  177. package/miniprogram_dist/common/utils/image-cdn-slim/utils.js +156 -156
  178. package/miniprogram_dist/common/utils/index.js +86 -86
  179. package/miniprogram_dist/common/utils/liveGoods.js +217 -217
  180. package/miniprogram_dist/common/utils/specialList.js +5 -5
  181. package/miniprogram_dist/common/utils/tool.js +72 -72
  182. package/miniprogram_dist/common/wxs/filter.wxs +29 -29
  183. package/miniprogram_dist/index.js +6 -6
  184. package/miniprogram_dist/index.js.map +1 -1
  185. package/miniprogram_dist/lib.js.map +1 -1
  186. package/package.json +78 -78
  187. package/project.config.json +79 -79
  188. package/src/AliveInvite/LiveRoomVertical/components/friends/friends.js +181 -181
  189. package/src/AliveInvite/LiveRoomVertical/components/friends/friends.wxml +25 -25
  190. package/src/AliveInvite/LiveRoomVertical/components/friends/friends.wxss +97 -97
  191. package/src/AliveInvite/LiveRoomVertical/index.js +253 -253
  192. package/src/AliveInvite/LiveRoomVertical/index.less +255 -255
  193. package/src/AliveInvite/LiveRoomVertical/index.wxml +122 -122
  194. package/src/AliveInvite/LiveRoomVertical/index.wxss +252 -252
  195. package/src/CollectionAddress/index.js +288 -288
  196. package/src/CollectionAddress/index.json +13 -13
  197. package/src/CollectionAddress/index.less +4 -4
  198. package/src/CollectionAddress/index.wxml +93 -93
  199. package/src/CollectionAddress/index.wxss +5 -5
  200. package/src/ConfirmOrder/components/AddressEdit/index.json +10 -10
  201. package/src/ConfirmOrder/components/AddressEdit/index.less +123 -123
  202. package/src/ConfirmOrder/components/AddressEdit/index.wxml +51 -51
  203. package/src/ConfirmOrder/components/AddressEdit/index.wxss +120 -120
  204. package/src/ConfirmOrder/components/AddressManage/index.js +168 -168
  205. package/src/ConfirmOrder/components/AddressManage/index.json +7 -7
  206. package/src/ConfirmOrder/components/AddressManage/index.less +95 -95
  207. package/src/ConfirmOrder/components/AddressManage/index.wxml +36 -36
  208. package/src/ConfirmOrder/components/AddressManage/index.wxss +98 -98
  209. package/src/ConfirmOrder/components/AddressSelect/index.js +160 -160
  210. package/src/ConfirmOrder/components/AddressSelect/index.json +4 -4
  211. package/src/ConfirmOrder/components/AddressSelect/index.less +79 -79
  212. package/src/ConfirmOrder/components/AddressSelect/index.wxml +33 -33
  213. package/src/ConfirmOrder/components/AddressSelect/index.wxss +67 -67
  214. package/src/ConfirmOrder/components/ChoosePicker/index.js +115 -115
  215. package/src/ConfirmOrder/components/ChoosePicker/index.json +5 -5
  216. package/src/ConfirmOrder/components/ChoosePicker/index.less +20 -20
  217. package/src/ConfirmOrder/components/ChoosePicker/index.wxml +9 -9
  218. package/src/ConfirmOrder/components/ChoosePicker/index.wxss +18 -18
  219. package/src/ConfirmOrder/components/ConfirmOrderContent/index.js +1819 -1819
  220. package/src/ConfirmOrder/components/ConfirmOrderContent/index.json +27 -27
  221. package/src/ConfirmOrder/components/ConfirmOrderContent/index.scss +44 -44
  222. package/src/ConfirmOrder/components/ConfirmOrderContent/index.wxml +225 -225
  223. package/src/ConfirmOrder/components/ConfirmOrderContent/index.wxss +37 -37
  224. package/src/ConfirmOrder/components/GoodsInfo/components/CopGoodsList/index.js +129 -129
  225. package/src/ConfirmOrder/components/GoodsInfo/components/CopGoodsList/index.json +8 -8
  226. package/src/ConfirmOrder/components/GoodsInfo/components/CopGoodsList/index.scss +58 -58
  227. package/src/ConfirmOrder/components/GoodsInfo/components/CopGoodsList/index.wxml +25 -25
  228. package/src/ConfirmOrder/components/GoodsInfo/components/CopGoodsList/index.wxss +1 -1
  229. package/src/ConfirmOrder/components/GoodsInfo/index.wxss +1 -1
  230. package/src/ConfirmOrder/components/IntegralSelect/index.wxss +218 -218
  231. package/src/ConfirmOrder/components/Invoice/index.wxss +93 -93
  232. package/src/ConfirmOrder/components/LeaveWord/index.wxss +1 -1
  233. package/src/ConfirmOrder/components/OrderBubble/index.wxss +1 -1
  234. package/src/ConfirmOrder/components/PayBar/index.wxss +1 -1
  235. package/src/ConfirmOrder/components/PayDetail/index.wxss +78 -78
  236. package/src/ConfirmOrder/components/SvipSelect/SvipSelect.wxss +266 -266
  237. package/src/CopGoodsCard/index.wxss +1 -1
  238. package/src/CouponList/components/CouponItem/index.wxss +1 -1
  239. package/src/CouponList/components/couponIcon/index.wxss +1 -1
  240. package/src/CouponList/stuCouponPopup/index.wxss +1 -1
  241. package/src/CouponReceivePopup/index.wxss +1 -1
  242. package/src/CustomPopup/index.wxss +37 -37
  243. package/src/GoodsBubble/index.wxss +1 -1
  244. package/src/GoodsItem/index.js +180 -21
  245. package/src/GoodsItem/index.scss +822 -627
  246. package/src/GoodsItem/index.wxml +145 -108
  247. package/src/GoodsItem/index.wxs +40 -40
  248. package/src/GoodsItem/index.wxss +1 -1
  249. package/src/GoodsRecommend/index.wxss +537 -537
  250. package/src/LevelMemberBar/index.wxss +1 -1
  251. package/src/LiveGoodsList/Header/index.js +65 -65
  252. package/src/LiveGoodsList/Header/index.json +6 -6
  253. package/src/LiveGoodsList/Header/index.less +45 -45
  254. package/src/LiveGoodsList/Header/index.scss +157 -137
  255. package/src/LiveGoodsList/Header/index.wxml +39 -36
  256. package/src/LiveGoodsList/Header/index.wxss +1 -1
  257. package/src/LiveGoodsList/README.md +9 -9
  258. package/src/LiveGoodsList/index.js +29 -10
  259. package/src/LiveGoodsList/index.less +53 -53
  260. package/src/LiveGoodsList/index.scss +173 -173
  261. package/src/LiveGoodsList/index.wxml +9 -1
  262. package/src/LiveGoodsList/index.wxss +1 -1
  263. package/src/MatchList/index.js +445 -441
  264. package/src/MatchList/index.json +5 -5
  265. package/src/MatchList/index.scss +175 -175
  266. package/src/MatchList/index.wxml +98 -97
  267. package/src/MatchList/index.wxss +1 -1
  268. package/src/MemberIntegralMultiplierBar/index.js +196 -196
  269. package/src/MemberIntegralMultiplierBar/index.json +7 -7
  270. package/src/MemberIntegralMultiplierBar/index.scss +67 -67
  271. package/src/MemberIntegralMultiplierBar/index.wxml +8 -8
  272. package/src/MemberIntegralMultiplierBar/index.wxss +1 -1
  273. package/src/MemberIntegralMultiplierPopup/index.js +54 -54
  274. package/src/MemberIntegralMultiplierPopup/index.json +7 -7
  275. package/src/MemberIntegralMultiplierPopup/index.scss +86 -86
  276. package/src/MemberIntegralMultiplierPopup/index.wxml +48 -48
  277. package/src/MemberIntegralMultiplierPopup/index.wxss +1 -1
  278. package/src/MemberIntegralMultiplierPopup/popup-service.js +18 -18
  279. package/src/MsgBubble/index.js +312 -0
  280. package/src/MsgBubble/index.json +7 -0
  281. package/src/MsgBubble/index.scss +81 -0
  282. package/src/MsgBubble/index.wxml +19 -0
  283. package/src/MsgBubble/index.wxss +1 -0
  284. package/src/PayModule/button/index.wxss +58 -58
  285. package/src/ShoppingCartBubble/index.js +336 -156
  286. package/src/ShoppingCartBubble/index.scss +94 -55
  287. package/src/ShoppingCartBubble/index.wxml +14 -11
  288. package/src/ShoppingCartBubble/index.wxss +1 -1
  289. package/src/Task/TaskBubble/index.json +3 -3
  290. package/src/Task/TaskBubble/index.scss +125 -125
  291. package/src/Task/TaskBubble/index.wxml +22 -22
  292. package/src/Task/TaskBubble/index.wxss +289 -289
  293. package/src/Task/TaskIcon/index.js +29 -29
  294. package/src/Task/TaskIcon/index.json +4 -4
  295. package/src/Task/TaskIcon/index.scss +70 -70
  296. package/src/Task/TaskIcon/index.wxml +5 -5
  297. package/src/Task/TaskIcon/index.wxss +130 -130
  298. package/src/Task/TaskPopup/component/RewardList/index.js +52 -52
  299. package/src/Task/TaskPopup/component/RewardList/index.json +6 -6
  300. package/src/Task/TaskPopup/component/RewardList/index.scss +39 -39
  301. package/src/Task/TaskPopup/component/RewardList/index.wxml +23 -23
  302. package/src/Task/TaskPopup/component/RewardList/index.wxss +18 -18
  303. package/src/Task/TaskPopup/component/TaskItem/index.js +578 -578
  304. package/src/Task/TaskPopup/component/TaskItem/index.json +10 -10
  305. package/src/Task/TaskPopup/component/TaskItem/index.scss +245 -245
  306. package/src/Task/TaskPopup/component/TaskItem/index.wxml +145 -145
  307. package/src/Task/TaskPopup/component/TaskItem/index.wxs +7 -7
  308. package/src/Task/TaskPopup/component/TaskItem/index.wxss +1 -1
  309. package/src/Task/TaskPopup/component/TaskList/index.js +298 -298
  310. package/src/Task/TaskPopup/component/TaskList/index.json +7 -7
  311. package/src/Task/TaskPopup/component/TaskList/index.scss +66 -66
  312. package/src/Task/TaskPopup/component/TaskList/index.wxml +41 -41
  313. package/src/Task/TaskPopup/component/TaskList/index.wxss +118 -118
  314. package/src/Task/TaskPopup/component/TaskType/index.js +129 -129
  315. package/src/Task/TaskPopup/component/TaskType/index.json +13 -13
  316. package/src/Task/TaskPopup/component/TaskType/index.scss +90 -90
  317. package/src/Task/TaskPopup/component/TaskType/index.wxml +69 -69
  318. package/src/Task/TaskPopup/component/TaskType/index.wxss +1 -1
  319. package/src/Task/TaskPopup/index.js +174 -174
  320. package/src/Task/TaskPopup/index.json +7 -7
  321. package/src/Task/TaskPopup/index.scss +166 -166
  322. package/src/Task/TaskPopup/index.wxml +87 -87
  323. package/src/Task/TaskPopup/index.wxss +490 -490
  324. package/src/Task/TaskQuizPopup/components/quizContent/index.js +131 -131
  325. package/src/Task/TaskQuizPopup/components/quizContent/index.json +5 -5
  326. package/src/Task/TaskQuizPopup/components/quizContent/index.scss +191 -191
  327. package/src/Task/TaskQuizPopup/components/quizContent/index.wxml +64 -64
  328. package/src/Task/TaskQuizPopup/components/quizContent/index.wxs +78 -78
  329. package/src/Task/TaskQuizPopup/components/quizContent/index.wxss +521 -521
  330. package/src/Task/TaskQuizPopup/components/quizRichText/index.js +40 -40
  331. package/src/Task/TaskQuizPopup/components/quizRichText/index.json +5 -5
  332. package/src/Task/TaskQuizPopup/components/quizRichText/index.scss +6 -6
  333. package/src/Task/TaskQuizPopup/components/quizRichText/index.wxml +1 -1
  334. package/src/Task/TaskQuizPopup/components/quizRichText/index.wxss +298 -298
  335. package/src/Task/TaskQuizPopup/components/wxParse/base.wxml +50 -50
  336. package/src/Task/TaskQuizPopup/components/wxParse/html2json.js +623 -623
  337. package/src/Task/TaskQuizPopup/components/wxParse/htmlparser.js +183 -183
  338. package/src/Task/TaskQuizPopup/components/wxParse/iframeParse.js +216 -216
  339. package/src/Task/TaskQuizPopup/components/wxParse/loop.wxml +3563 -3563
  340. package/src/Task/TaskQuizPopup/components/wxParse/showdown.js +2364 -2364
  341. package/src/Task/TaskQuizPopup/components/wxParse/wxDiscode.js +209 -209
  342. package/src/Task/TaskQuizPopup/components/wxParse/wxParse.js +269 -269
  343. package/src/Task/TaskQuizPopup/components/wxParse/wxParse.wxml +1276 -1276
  344. package/src/Task/TaskQuizPopup/components/wxParse/wxParse.wxss +316 -316
  345. package/src/Task/TaskQuizPopup/index.js +246 -246
  346. package/src/Task/TaskQuizPopup/index.json +7 -7
  347. package/src/Task/TaskQuizPopup/index.scss +158 -158
  348. package/src/Task/TaskQuizPopup/index.wxml +99 -99
  349. package/src/Task/TaskQuizPopup/index.wxss +478 -478
  350. package/src/Task/common/task.js +55 -55
  351. package/src/Task/taskQuizRemindPopup/index.js +74 -74
  352. package/src/Task/taskQuizRemindPopup/index.json +5 -5
  353. package/src/Task/taskQuizRemindPopup/index.scss +107 -107
  354. package/src/Task/taskQuizRemindPopup/index.wxml +27 -27
  355. package/src/Task/taskQuizRemindPopup/index.wxss +286 -286
  356. package/src/Task/taskReceivePopup/coupon/index.js +68 -68
  357. package/src/Task/taskReceivePopup/coupon/index.json +6 -6
  358. package/src/Task/taskReceivePopup/coupon/index.scss +123 -123
  359. package/src/Task/taskReceivePopup/coupon/index.wxml +81 -81
  360. package/src/Task/taskReceivePopup/coupon/index.wxs +48 -48
  361. package/src/Task/taskReceivePopup/coupon/index.wxss +274 -274
  362. package/src/Task/taskReceivePopup/customPrizes/index.js +44 -44
  363. package/src/Task/taskReceivePopup/customPrizes/index.json +6 -6
  364. package/src/Task/taskReceivePopup/customPrizes/index.scss +106 -106
  365. package/src/Task/taskReceivePopup/customPrizes/index.wxml +38 -38
  366. package/src/Task/taskReceivePopup/customPrizes/index.wxs +48 -48
  367. package/src/Task/taskReceivePopup/customPrizes/index.wxss +220 -220
  368. package/src/Task/taskReceivePopup/index.js +47 -47
  369. package/src/Task/taskReceivePopup/index.json +13 -13
  370. package/src/Task/taskReceivePopup/index.wxml +32 -32
  371. package/src/Task/taskReceivePopup/index.wxss +1 -1
  372. package/src/Task/taskReceivePopup/integral/index.js +106 -106
  373. package/src/Task/taskReceivePopup/integral/index.json +7 -7
  374. package/src/Task/taskReceivePopup/integral/index.scss +60 -60
  375. package/src/Task/taskReceivePopup/integral/index.wxml +23 -23
  376. package/src/Task/taskReceivePopup/integral/index.wxss +94 -94
  377. package/src/TeacherGoodsList/index.js +997 -983
  378. package/src/TeacherGoodsList/index.json +10 -10
  379. package/src/TeacherGoodsList/index.scss +178 -178
  380. package/src/TeacherGoodsList/index.wxml +146 -144
  381. package/src/TeacherGoodsList/index.wxss +1 -1
  382. package/src/common/api/liveGoodsList.js +181 -167
  383. package/src/common/assets/copy.wxss +3 -3
  384. package/src/common/assets/images/coupon/emptypage.svg +49 -49
  385. package/src/common/assets/images/coupon/failed.svg +5 -5
  386. package/src/common/assets/images/coupon/up.svg +21 -21
  387. package/src/common/assets/images/pay/loading.svg +3 -3
  388. package/src/common/assets/images/recommend.svg +6 -6
  389. package/src/common/assets/images/refresh.svg +10 -10
  390. package/src/common/assets/images/refresh_white.svg +3 -3
  391. package/src/common/assets/images/wechat.svg +4 -4
  392. package/src/common/css/index.less +2 -2
  393. package/src/common/css/theme.less +19 -19
  394. package/src/common/css/theme.wxss +16 -16
  395. package/src/common/libs/dataUp/sensorUp.js +91 -91
  396. package/src/common/libs/playerHttp.js +58 -58
  397. package/src/common/libs/playerRequestUrl.js +39 -39
  398. package/src/common/transaction/parameter/channel-info.js +36 -36
  399. package/src/common/transaction/parameter/delivery-info.js +26 -26
  400. package/src/common/transaction/parameter/misc-parameter.js +21 -21
  401. package/src/common/utils/currency.js +52 -52
  402. package/src/common/utils/getInfoCollectionData.js +59 -59
  403. package/src/common/utils/image-cdn-slim/constant.js +8 -8
  404. package/src/common/utils/image-cdn-slim/index.js +7 -7
  405. package/src/common/utils/image-cdn-slim/utils.js +156 -156
  406. package/src/common/utils/index.js +86 -86
  407. package/src/common/utils/liveGoods.js +217 -217
  408. package/src/common/utils/specialList.js +5 -5
  409. package/src/common/utils/tool.js +72 -72
  410. package/src/common/wxs/filter.wxs +29 -29
  411. package/src/coupon/components/CouponItem/index.wxss +821 -821
  412. package/src/coupon/components/CouponSelect/index.wxss +1132 -1132
  413. package/src/coupon/index.wxss +216 -216
  414. package/src/index.js +23 -23
  415. package/src/lib.ts +5 -5
  416. package/src/project.config.json +68 -68
  417. package/src/utils.js +5 -5
  418. package/tsconfig.json +25 -25
@@ -1,52 +1,52 @@
1
- // 强制保留2位小数,如:2,会在2后面补上00.即2.00
2
- export function toDecimal2(x) {
3
- var f = parseFloat(x);
4
- if (isNaN(f)) {
5
- return false;
6
- }
7
- var f = Math.round(x * 100) / 100;
8
- var s = f.toString();
9
- var rs = s.indexOf('.');
10
- if (rs < 0) {
11
- rs = s.length;
12
- s += '.';
13
- }
14
- while (s.length <= rs + 2) {
15
- s += '0';
16
- }
17
- return s;
18
- }
19
-
20
- /**
21
- * @desc 分转化为元 - 正则解决精度
22
- * @param { Number } fen
23
- * @return { String }
24
- */
25
- export function fenToYuan(fen) {
26
- var num = fen;
27
- num = fen * 0.01;
28
- num += '';
29
- var reg = num.indexOf('.') > -1 ? /(\d{1,3})(?=(?:\d{3})+\.)/g : /(\d{1,3})(?=(?:\d{3})+$)/g;
30
- num = num.replace(reg, '$1');
31
- num = toDecimal2(num)
32
- return num
33
- }
34
-
35
- /**
36
- * @desc 元转分 - 解决精度问题
37
- * @param { Number } yuan 要转换的钱 单位元
38
- * @param { Number } digit 转换倍数
39
- * @return { Number }
40
- */
41
- export function yuanToFen(yuan, digit = 100) {
42
- var m = 0,
43
- s1 = yuan.toString(),
44
- s2 = digit.toString();
45
- try {
46
- m += s1.split(".")[1].length
47
- } catch (e) { }
48
- try {
49
- m += s2.split(".")[1].length
50
- } catch (e) { }
51
- return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
52
- }
1
+ // 强制保留2位小数,如:2,会在2后面补上00.即2.00
2
+ export function toDecimal2(x) {
3
+ var f = parseFloat(x);
4
+ if (isNaN(f)) {
5
+ return false;
6
+ }
7
+ var f = Math.round(x * 100) / 100;
8
+ var s = f.toString();
9
+ var rs = s.indexOf('.');
10
+ if (rs < 0) {
11
+ rs = s.length;
12
+ s += '.';
13
+ }
14
+ while (s.length <= rs + 2) {
15
+ s += '0';
16
+ }
17
+ return s;
18
+ }
19
+
20
+ /**
21
+ * @desc 分转化为元 - 正则解决精度
22
+ * @param { Number } fen
23
+ * @return { String }
24
+ */
25
+ export function fenToYuan(fen) {
26
+ var num = fen;
27
+ num = fen * 0.01;
28
+ num += '';
29
+ var reg = num.indexOf('.') > -1 ? /(\d{1,3})(?=(?:\d{3})+\.)/g : /(\d{1,3})(?=(?:\d{3})+$)/g;
30
+ num = num.replace(reg, '$1');
31
+ num = toDecimal2(num)
32
+ return num
33
+ }
34
+
35
+ /**
36
+ * @desc 元转分 - 解决精度问题
37
+ * @param { Number } yuan 要转换的钱 单位元
38
+ * @param { Number } digit 转换倍数
39
+ * @return { Number }
40
+ */
41
+ export function yuanToFen(yuan, digit = 100) {
42
+ var m = 0,
43
+ s1 = yuan.toString(),
44
+ s2 = digit.toString();
45
+ try {
46
+ m += s1.split(".")[1].length
47
+ } catch (e) { }
48
+ try {
49
+ m += s2.split(".")[1].length
50
+ } catch (e) { }
51
+ return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
52
+ }
@@ -1,60 +1,60 @@
1
- import { getInfoForm } from "../api/getInfoForm"
2
-
3
- export function getInfoCollectionData(resourceId, resourceType, bizOptions) {
4
- const defaultOptions = {
5
- resourceId: resourceId,
6
- resourceType: resourceType,
7
- spuId: '',
8
- resourceClass: '',
9
- clientType: 0,
10
- operationBtn: '保存',
11
- isBuyPage: false,
12
- isAliveEntry: false,
13
- isAliveDraw: false
14
- };
15
- return new Promise( async(resolve, reject) => {
16
- const options = Object.assign(defaultOptions, bizOptions);
17
- const fetchParams = {
18
- resource_id: resourceId,
19
- resource_type: resourceType,
20
- spu_id: options.spuId ? options.spuId : undefined,
21
- resource_class: options.resourceClass ? options.resourceClass : undefined
22
- };
23
- await getInfoForm(fetchParams).then(({ data }) => {
24
- if (data.code == 0) {
25
- const { form_data, purchase_data, user_data, append_condition } = data.data;
26
- // ----------给全局globalData赋值------------
27
- getApp().globalData.infoCollectionData = data.data;
28
- getApp().globalData.infoCollectionData.properties = options;
29
- console.log('getApp().globalData.infoCollectionData', getApp().globalData.infoCollectionData);
30
-
31
- const scenes = form_data.scenes ? form_data.scenes[0] : undefined;
32
- const isNeedCollect = append_condition.value && purchase_data.switch && user_data.need_collect;
33
-
34
- // 是否需要强制采集
35
- let isNeedInfoCollection = false;
36
- if (options.isAliveEntry) {
37
- // 【直播入口】
38
- isNeedInfoCollection = isNeedCollect && (scenes === 'buy_page' || scenes === 'detail_page_force');
39
- } else if (options.isAliveDraw) {
40
- // 【抽奖】抽中的商品如果开启了“购买确认页”或“兑换页”的信息采集,则在领取时会触发强制采集。其他场景不会触发
41
- isNeedInfoCollection = isNeedCollect && (scenes === 'buy_page' || scenes === 'conver_page');
42
- } else if (options.isBuyPage) {
43
- // 【购买确认页】购买确认页场景只需要额外判断scenes是否是buy_page,其他字段都不需要强制采集
44
- isNeedInfoCollection = isNeedCollect && scenes === 'buy_page';
45
- } else {
46
- isNeedInfoCollection = isNeedCollect;
47
- }
48
- resolve({ data: data.data, isNeedInfoCollection: Boolean(isNeedInfoCollection), isExpired: false });
49
- } else if (data.code == 1) {
50
- // 信息采集功能包过期,直接告诉业务侧不需要采集
51
- resolve({ data: {}, isNeedInfoCollection: false, isExpired: true });
52
- } else {
53
- reject(data);
54
- }
55
- })
56
- .catch((error) => {
57
- reject(error);
58
- });
59
- });
1
+ import { getInfoForm } from "../api/getInfoForm"
2
+
3
+ export function getInfoCollectionData(resourceId, resourceType, bizOptions) {
4
+ const defaultOptions = {
5
+ resourceId: resourceId,
6
+ resourceType: resourceType,
7
+ spuId: '',
8
+ resourceClass: '',
9
+ clientType: 0,
10
+ operationBtn: '保存',
11
+ isBuyPage: false,
12
+ isAliveEntry: false,
13
+ isAliveDraw: false
14
+ };
15
+ return new Promise( async(resolve, reject) => {
16
+ const options = Object.assign(defaultOptions, bizOptions);
17
+ const fetchParams = {
18
+ resource_id: resourceId,
19
+ resource_type: resourceType,
20
+ spu_id: options.spuId ? options.spuId : undefined,
21
+ resource_class: options.resourceClass ? options.resourceClass : undefined
22
+ };
23
+ await getInfoForm(fetchParams).then(({ data }) => {
24
+ if (data.code == 0) {
25
+ const { form_data, purchase_data, user_data, append_condition } = data.data;
26
+ // ----------给全局globalData赋值------------
27
+ getApp().globalData.infoCollectionData = data.data;
28
+ getApp().globalData.infoCollectionData.properties = options;
29
+ console.log('getApp().globalData.infoCollectionData', getApp().globalData.infoCollectionData);
30
+
31
+ const scenes = form_data.scenes ? form_data.scenes[0] : undefined;
32
+ const isNeedCollect = append_condition.value && purchase_data.switch && user_data.need_collect;
33
+
34
+ // 是否需要强制采集
35
+ let isNeedInfoCollection = false;
36
+ if (options.isAliveEntry) {
37
+ // 【直播入口】
38
+ isNeedInfoCollection = isNeedCollect && (scenes === 'buy_page' || scenes === 'detail_page_force');
39
+ } else if (options.isAliveDraw) {
40
+ // 【抽奖】抽中的商品如果开启了“购买确认页”或“兑换页”的信息采集,则在领取时会触发强制采集。其他场景不会触发
41
+ isNeedInfoCollection = isNeedCollect && (scenes === 'buy_page' || scenes === 'conver_page');
42
+ } else if (options.isBuyPage) {
43
+ // 【购买确认页】购买确认页场景只需要额外判断scenes是否是buy_page,其他字段都不需要强制采集
44
+ isNeedInfoCollection = isNeedCollect && scenes === 'buy_page';
45
+ } else {
46
+ isNeedInfoCollection = isNeedCollect;
47
+ }
48
+ resolve({ data: data.data, isNeedInfoCollection: Boolean(isNeedInfoCollection), isExpired: false });
49
+ } else if (data.code == 1) {
50
+ // 信息采集功能包过期,直接告诉业务侧不需要采集
51
+ resolve({ data: {}, isNeedInfoCollection: false, isExpired: true });
52
+ } else {
53
+ reject(data);
54
+ }
55
+ })
56
+ .catch((error) => {
57
+ reject(error);
58
+ });
59
+ });
60
60
  }
@@ -1,8 +1,8 @@
1
- export const NEED_REPLACE = [
2
- '.picsh.myqcloud.com',
3
- '.file.myqcloud.com',
4
- '.cossh.myqcloud.com',
5
- '.cdn.xiaoeknow.com'
6
- ]
7
-
8
- export const COS_V5 = '.cdn.xiaoeknow.com'
1
+ export const NEED_REPLACE = [
2
+ '.picsh.myqcloud.com',
3
+ '.file.myqcloud.com',
4
+ '.cossh.myqcloud.com',
5
+ '.cdn.xiaoeknow.com'
6
+ ]
7
+
8
+ export const COS_V5 = '.cdn.xiaoeknow.com'
@@ -1,7 +1,7 @@
1
- import { replaceCDN, replaceAllImg } from './utils'
2
-
3
- // 处理图片链接
4
- export const getImageCdnSlimUrl = (url, config = '/2/w/1025/a/100') => url ? replaceCDN(url, `?imageView2${config}`, true) : url;
5
-
6
- // 处理富文本
7
- export const getImageCdnSlimRichTextContent = richText => replaceAllImg(richText, false, {quality: '80'});
1
+ import { replaceCDN, replaceAllImg } from './utils'
2
+
3
+ // 处理图片链接
4
+ export const getImageCdnSlimUrl = (url, config = '/2/w/1025/a/100') => url ? replaceCDN(url, `?imageView2${config}`, true) : url;
5
+
6
+ // 处理富文本
7
+ export const getImageCdnSlimRichTextContent = richText => replaceAllImg(richText, false, {quality: '80'});
@@ -1,157 +1,157 @@
1
- import { NEED_REPLACE, COS_V5 } from './constant'
2
-
3
- /**
4
- * 图片CDN替换
5
- * @param src 字符串,图片URL链接,或者数组['src']
6
- * @param ci 数据万象参数
7
- * 如果为字符串会直接把参数拼接到cdn后面
8
- * 如果是对象参数见_genCI方法
9
- * example: replaceCDN('https://wechatapppro-1252524126.picsh.myqcloud.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg', '?imageView2/2/w/800')
10
- * return: 'https://wechatapppro-1252524126.cdn.xiaoeknow.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg??imageView2/2/w/800'
11
- * */
12
- export const replaceCDN = function (src = '', ci) {
13
- if (!src.length) return src
14
- const isSrcArray = Array.isArray(src);
15
- src = isSrcArray ? src : [src];
16
- // 生成数据万象链接
17
- ci = typeof ci === 'string' ? ci : _genCI(ci);
18
- const hasValue = (item, aim) => item.indexOf(aim) > -1;
19
- // 获取文件格式
20
- const getFileSuffix = (item = '') => item.split('.').pop().toLowerCase();
21
- // 获取需要替换为CDN的链接
22
- const getReplaceURL = (item = '') => {
23
- // cos 源站地址 例如:cos.ap-shanghai.myqcloud.com
24
- const cosMatch = item.match(/\.cos\.ap-([^.]*)\.myqcloud.com/);
25
- if (cosMatch) {
26
- return cosMatch[0]
27
- }
28
- return NEED_REPLACE.find(url => hasValue(item, url))
29
- }
30
- // 转换后的格式
31
- let formatSuffix = ci.match(/\/format\/([^/|?]+)/);
32
- formatSuffix = formatSuffix ? formatSuffix[1].toLowerCase() : null;
33
- // 不支持webp时会降级成jpeg
34
- if (!isWebp() && formatSuffix === 'webp') {
35
- ci = ci.replace('format/webp', '')
36
- }
37
- // 转换后格式是否为静态图片
38
- const isFormatStaticType = ['jpg', 'jpeg', 'png', 'bmp', 'tpg', 'heif'].includes(formatSuffix);
39
- // imgView2|imgMorg2 错误兼容
40
- ci = `${ci}|imageMogr2/ignore-error/1`
41
- const result = src.map(item => {
42
- const fileSuffix = getFileSuffix(item);
43
- const replaceUrl = getReplaceURL(item);
44
- // 不支持svg格式,且需要有符合条件可替换成url才进行替换
45
- if (fileSuffix !== 'svg' && replaceUrl) {
46
- let srcCI = ci;
47
- // 动态图片不能转成静态图片,不然会静止
48
- if (fileSuffix == 'gif' && isFormatStaticType) {
49
- srcCI = srcCI.replace(`/format/${formatSuffix}`, '')
50
- }
51
- item = item.replace(replaceUrl, COS_V5) + srcCI;
52
- }
53
- return item
54
- })
55
- return isSrcArray ? result : result[0];
56
-
57
- }
58
-
59
-
60
- /**
61
- * 富文本html图片CDN替换
62
- * @param html html字符串
63
- * @param lazyLoad 是否需要懒加载
64
- * @param ci 数据万象参数
65
- * 如果为字符串会直接把参数拼接到cdn后面
66
- * 如果是对象参数见_genCI方法
67
- * example: replaceAllImg('html', true, '?imageView2/2/w/800')
68
- * return: html
69
- * */
70
- export const replaceAllImg = function (html, lazyLoad = false, ci = '?imageMogr2/thumbnail/800x>/format/webp') {
71
- return html.replace(/<img[^>]*>/gi, str => {
72
- const srcReg = /src=['"]?([^'"]*)['"]?/i;
73
- const dataSrc = lazyLoad ? 'data-src' : 'src'
74
- const url = str.match(srcReg);
75
- //没有 src 属性的 <img></img> 匹配不到 返回 <img src="@/assets/imgs/photo_error.png" />
76
- if (Array.isArray(url) && url.length > 1) {
77
- const newSrc = replaceCDN(url[1], ci)
78
- return str.replace(url[0], `${dataSrc}="${newSrc}"`);
79
- }
80
- return `<img ${dataSrc}="https://wechatapppro-1252524126.cdn.xiaoeknow.com/appAKLWLitn7978/image/b_u_5b2225aa46488_oGKN7IvA/ky19qhac05ix.png" />`
81
-
82
- });
83
- }
84
-
85
- /**
86
- * 根据参数生成数据万象链接
87
- * @param data 参数为 { type, width, height, quality, rquality, lquality, format, extra }
88
- * example: replaceCDN('https://wechatapppro-1252524126.picsh.myqcloud.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg', '?imageView2/2/w/800')
89
- * return: 'https://wechatapppro-1252524126.cdn.xiaoeknow.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg??imageView2/2/w/800'
90
- * */
91
- const _genCI = (data = {}) => {
92
- const defaultParams = { type: '2', format: 'webp', quality: '80'};
93
- if (data.rquality || data.lquality) {
94
- delete defaultParams.quality
95
- }
96
- data = Object.assign(defaultParams, data);
97
- const paramMap = {
98
- width: 'w',
99
- height: 'h',
100
- quality: 'q',
101
- rquality: 'rq',
102
- lquality: 'lq',
103
- format: 'format'
104
- }
105
- const keys = Object.keys(paramMap);
106
-
107
- let path = ''
108
- keys.forEach(key => {
109
- const dataVal = data[key];
110
- if (dataVal) {
111
- path += `/${paramMap[key]}/${data[key]}`
112
- }
113
- })
114
-
115
- if (path) {
116
- const extra = data.extra || '';
117
- path = `?imageView2/${data.type}${path}${extra}`
118
- }
119
- return path;
120
- }
121
-
122
- /**
123
- * 检测是否支持Webp
124
- * @param data 参数为 { type, width, height, quality, rquality, lquality, format, extra }
125
- * example: replaceCDN('https://wechatapppro-1252524126.picsh.myqcloud.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg', '?imageView2/2/w/800')
126
- * return: 'https://wechatapppro-1252524126.cdn.xiaoeknow.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg??imageView2/2/w/800'
127
- * */
128
- const isWebp = () => {
129
- let support = false;
130
-
131
- try {
132
- const _wx$getSystemInfoSync = wx.getSystemInfoSync(),
133
- platform = _wx$getSystemInfoSync.platform,
134
- system = _wx$getSystemInfoSync.system;
135
-
136
- const versionResult = /[0-9.]*$/.exec(system);
137
- const systemVersion = versionResult ? versionResult[0] : '';
138
- const iosSystemSupport =
139
- platform === 'ios' &&
140
- !!systemVersion &&
141
- compareVersion(systemVersion, '14.0') >= 0; // ios 14以下的版本不支持 webp
142
-
143
- support =
144
- platform === 'devtools' ||
145
- platform === 'android' ||
146
- iosSystemSupport;
147
- } catch (e) {
148
- console.log(e);
149
- }
150
-
151
- return support;
152
- }
153
-
154
- // 比较前面的版本是否比后面的版本要大
155
- const compareVersion = (currentVersion, targetVersion) => {
156
- return Math.ceil(currentVersion - targetVersion)
1
+ import { NEED_REPLACE, COS_V5 } from './constant'
2
+
3
+ /**
4
+ * 图片CDN替换
5
+ * @param src 字符串,图片URL链接,或者数组['src']
6
+ * @param ci 数据万象参数
7
+ * 如果为字符串会直接把参数拼接到cdn后面
8
+ * 如果是对象参数见_genCI方法
9
+ * example: replaceCDN('https://wechatapppro-1252524126.picsh.myqcloud.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg', '?imageView2/2/w/800')
10
+ * return: 'https://wechatapppro-1252524126.cdn.xiaoeknow.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg??imageView2/2/w/800'
11
+ * */
12
+ export const replaceCDN = function (src = '', ci) {
13
+ if (!src.length) return src
14
+ const isSrcArray = Array.isArray(src);
15
+ src = isSrcArray ? src : [src];
16
+ // 生成数据万象链接
17
+ ci = typeof ci === 'string' ? ci : _genCI(ci);
18
+ const hasValue = (item, aim) => item.indexOf(aim) > -1;
19
+ // 获取文件格式
20
+ const getFileSuffix = (item = '') => item.split('.').pop().toLowerCase();
21
+ // 获取需要替换为CDN的链接
22
+ const getReplaceURL = (item = '') => {
23
+ // cos 源站地址 例如:cos.ap-shanghai.myqcloud.com
24
+ const cosMatch = item.match(/\.cos\.ap-([^.]*)\.myqcloud.com/);
25
+ if (cosMatch) {
26
+ return cosMatch[0]
27
+ }
28
+ return NEED_REPLACE.find(url => hasValue(item, url))
29
+ }
30
+ // 转换后的格式
31
+ let formatSuffix = ci.match(/\/format\/([^/|?]+)/);
32
+ formatSuffix = formatSuffix ? formatSuffix[1].toLowerCase() : null;
33
+ // 不支持webp时会降级成jpeg
34
+ if (!isWebp() && formatSuffix === 'webp') {
35
+ ci = ci.replace('format/webp', '')
36
+ }
37
+ // 转换后格式是否为静态图片
38
+ const isFormatStaticType = ['jpg', 'jpeg', 'png', 'bmp', 'tpg', 'heif'].includes(formatSuffix);
39
+ // imgView2|imgMorg2 错误兼容
40
+ ci = `${ci}|imageMogr2/ignore-error/1`
41
+ const result = src.map(item => {
42
+ const fileSuffix = getFileSuffix(item);
43
+ const replaceUrl = getReplaceURL(item);
44
+ // 不支持svg格式,且需要有符合条件可替换成url才进行替换
45
+ if (fileSuffix !== 'svg' && replaceUrl) {
46
+ let srcCI = ci;
47
+ // 动态图片不能转成静态图片,不然会静止
48
+ if (fileSuffix == 'gif' && isFormatStaticType) {
49
+ srcCI = srcCI.replace(`/format/${formatSuffix}`, '')
50
+ }
51
+ item = item.replace(replaceUrl, COS_V5) + srcCI;
52
+ }
53
+ return item
54
+ })
55
+ return isSrcArray ? result : result[0];
56
+
57
+ }
58
+
59
+
60
+ /**
61
+ * 富文本html图片CDN替换
62
+ * @param html html字符串
63
+ * @param lazyLoad 是否需要懒加载
64
+ * @param ci 数据万象参数
65
+ * 如果为字符串会直接把参数拼接到cdn后面
66
+ * 如果是对象参数见_genCI方法
67
+ * example: replaceAllImg('html', true, '?imageView2/2/w/800')
68
+ * return: html
69
+ * */
70
+ export const replaceAllImg = function (html, lazyLoad = false, ci = '?imageMogr2/thumbnail/800x>/format/webp') {
71
+ return html.replace(/<img[^>]*>/gi, str => {
72
+ const srcReg = /src=['"]?([^'"]*)['"]?/i;
73
+ const dataSrc = lazyLoad ? 'data-src' : 'src'
74
+ const url = str.match(srcReg);
75
+ //没有 src 属性的 <img></img> 匹配不到 返回 <img src="@/assets/imgs/photo_error.png" />
76
+ if (Array.isArray(url) && url.length > 1) {
77
+ const newSrc = replaceCDN(url[1], ci)
78
+ return str.replace(url[0], `${dataSrc}="${newSrc}"`);
79
+ }
80
+ return `<img ${dataSrc}="https://wechatapppro-1252524126.cdn.xiaoeknow.com/appAKLWLitn7978/image/b_u_5b2225aa46488_oGKN7IvA/ky19qhac05ix.png" />`
81
+
82
+ });
83
+ }
84
+
85
+ /**
86
+ * 根据参数生成数据万象链接
87
+ * @param data 参数为 { type, width, height, quality, rquality, lquality, format, extra }
88
+ * example: replaceCDN('https://wechatapppro-1252524126.picsh.myqcloud.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg', '?imageView2/2/w/800')
89
+ * return: 'https://wechatapppro-1252524126.cdn.xiaoeknow.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg??imageView2/2/w/800'
90
+ * */
91
+ const _genCI = (data = {}) => {
92
+ const defaultParams = { type: '2', format: 'webp', quality: '80'};
93
+ if (data.rquality || data.lquality) {
94
+ delete defaultParams.quality
95
+ }
96
+ data = Object.assign(defaultParams, data);
97
+ const paramMap = {
98
+ width: 'w',
99
+ height: 'h',
100
+ quality: 'q',
101
+ rquality: 'rq',
102
+ lquality: 'lq',
103
+ format: 'format'
104
+ }
105
+ const keys = Object.keys(paramMap);
106
+
107
+ let path = ''
108
+ keys.forEach(key => {
109
+ const dataVal = data[key];
110
+ if (dataVal) {
111
+ path += `/${paramMap[key]}/${data[key]}`
112
+ }
113
+ })
114
+
115
+ if (path) {
116
+ const extra = data.extra || '';
117
+ path = `?imageView2/${data.type}${path}${extra}`
118
+ }
119
+ return path;
120
+ }
121
+
122
+ /**
123
+ * 检测是否支持Webp
124
+ * @param data 参数为 { type, width, height, quality, rquality, lquality, format, extra }
125
+ * example: replaceCDN('https://wechatapppro-1252524126.picsh.myqcloud.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg', '?imageView2/2/w/800')
126
+ * return: 'https://wechatapppro-1252524126.cdn.xiaoeknow.com/appaBx10ofe8494/image/kpcbjfwx0sdvg37z6dy.jpg??imageView2/2/w/800'
127
+ * */
128
+ const isWebp = () => {
129
+ let support = false;
130
+
131
+ try {
132
+ const _wx$getSystemInfoSync = wx.getSystemInfoSync(),
133
+ platform = _wx$getSystemInfoSync.platform,
134
+ system = _wx$getSystemInfoSync.system;
135
+
136
+ const versionResult = /[0-9.]*$/.exec(system);
137
+ const systemVersion = versionResult ? versionResult[0] : '';
138
+ const iosSystemSupport =
139
+ platform === 'ios' &&
140
+ !!systemVersion &&
141
+ compareVersion(systemVersion, '14.0') >= 0; // ios 14以下的版本不支持 webp
142
+
143
+ support =
144
+ platform === 'devtools' ||
145
+ platform === 'android' ||
146
+ iosSystemSupport;
147
+ } catch (e) {
148
+ console.log(e);
149
+ }
150
+
151
+ return support;
152
+ }
153
+
154
+ // 比较前面的版本是否比后面的版本要大
155
+ const compareVersion = (currentVersion, targetVersion) => {
156
+ return Math.ceil(currentVersion - targetVersion)
157
157
  }