@shijiu/jsview-vue-samples 2.3.0 → 2.3.728-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/ABImageAlt/App.vue +114 -0
  2. package/ABImageAlt/Item.vue +133 -0
  3. package/{MetroWidgetDemos/SkeletonDiagram/assets/imageList.json → ABImageAlt/assets/imageList.js} +9 -1
  4. package/ABImageAlt/data.js +17 -0
  5. package/AI_Check_Rules.txt +5 -0
  6. package/AnimPicture/App.vue +20 -10
  7. package/ApicSwitch/App.vue +90 -0
  8. package/ApicSwitch/TabItem.vue +65 -0
  9. package/ApicSwitch/WebpShow.vue +24 -0
  10. package/ApicSwitch/data.js +50 -0
  11. package/Basic/AI_skills_update.md +1 -0
  12. package/Basic/components/div/ColorFormatTest.vue +93 -0
  13. package/Basic/components/div/DivRadius.vue +97 -15
  14. package/Basic/components/div/DivTag3Group.vue +30 -0
  15. package/Basic/components/img/ImageType.vue +65 -0
  16. package/Basic/components/panel/Panel2.vue +13 -1
  17. package/Basic/components/text/TextAlign.vue +7 -1
  18. package/BlobLoadTest/App.vue +201 -0
  19. package/BreakLinesApi/App.vue +82 -0
  20. package/CanvasDrawChart/App.vue +11 -0
  21. package/CanvasDrawChart/Graph1.vue +104 -0
  22. package/CanvasDrawChart/Graph2.vue +115 -0
  23. package/DashPath/App.vue +17 -16
  24. package/DashPath/AppForOperator.vue +2 -4
  25. package/DemoForOperator/AnimPic/AnimPic.vue +24 -2
  26. package/DemoForOperator/Banger/Banger/Banger.vue +73 -9
  27. package/DemoForOperator/Blur/Blur.vue +146 -0
  28. package/DemoForOperator/Blur/BlurInOut/BlurInOut.vue +184 -0
  29. package/DemoForOperator/Blur/BlurInOut/StaticBgSlide.vue +162 -0
  30. package/DemoForOperator/Blur/BlurPopup/BlurPopup.vue +249 -0
  31. package/DemoForOperator/BookFlip/App.vue +115 -0
  32. package/DemoForOperator/BookFlip/BookPage.vue +82 -0
  33. package/DemoForOperator/Bounce/Bounce.vue +33 -1
  34. package/DemoForOperator/Bounce/FreeMoveBuilder.js +1 -1
  35. package/DemoForOperator/ChunLian/Couplets.vue +44 -1
  36. package/DemoForOperator/ClickSpriteAnim/App.vue +130 -0
  37. package/DemoForOperator/ClickSpriteAnim/Item.vue +74 -0
  38. package/DemoForOperator/DominantColor/App.vue +187 -0
  39. package/DemoForOperator/EpisodeList/EpisodeList/Controller.vue +0 -3
  40. package/DemoForOperator/EpisodeList/EpisodeList/EpisodeList.vue +76 -2
  41. package/DemoForOperator/Firework1/App.vue +13 -2
  42. package/DemoForOperator/Firework1/Fireworks.vue +68 -11
  43. package/DemoForOperator/FlipPage/FlipPage/FlipPage.vue +30 -1
  44. package/DemoForOperator/Focus/Alpha/AlphaFocusBox.vue +27 -2
  45. package/DemoForOperator/Focus/Alpha/Item.vue +1 -0
  46. package/DemoForOperator/Focus/Light/Item.vue +1 -0
  47. package/DemoForOperator/Focus/Light/LightFocusBox.vue +42 -1
  48. package/DemoForOperator/Focus/Normal/Item.vue +1 -0
  49. package/DemoForOperator/Focus/Normal/NormalFocusBox.vue +12 -0
  50. package/DemoForOperator/FrameShadow/App.vue +193 -0
  51. package/DemoForOperator/FrameShadow/FrameShadow.vue +61 -0
  52. package/DemoForOperator/FullscreenIn/App.vue +1 -1
  53. package/DemoForOperator/FullscreenIn/FullscreenPoster.vue +18 -3
  54. package/DemoForOperator/Genie/App.vue +20 -6
  55. package/DemoForOperator/Genie/App2.vue +61 -0
  56. package/DemoForOperator/Genie/geniePakcer/GenieImage.vue +298 -0
  57. package/DemoForOperator/Genie/geniePakcer/GenieSlot.vue +292 -0
  58. package/DemoForOperator/Genie/geniePakcer/GenieTools.ts +463 -0
  59. package/DemoForOperator/GrayFilter/GrayFilter.vue +21 -0
  60. package/DemoForOperator/Jigsaw/JigsawFull.vue +58 -11
  61. package/DemoForOperator/Jigsaw/JigsawSingle.vue +47 -9
  62. package/DemoForOperator/LongChatBox/App.vue +36 -0
  63. package/DemoForOperator/LongChatBox/Bubble.vue +116 -0
  64. package/DemoForOperator/LongChatBox/LongChat.vue +204 -0
  65. package/DemoForOperator/LongChatBox/testData.js +14 -0
  66. package/DemoForOperator/Particle/Drop/DropParticle.vue +33 -1
  67. package/DemoForOperator/Particle/Explode/ExplodeParticle.vue +23 -2
  68. package/DemoForOperator/PosterAnim/PosterAnim.js +21 -0
  69. package/DemoForOperator/PosterOverflow/PosterOverflow.vue +16 -0
  70. package/DemoForOperator/Resize/App.vue +157 -0
  71. package/DemoForOperator/Resize/Resize/Item.vue +234 -0
  72. package/DemoForOperator/Resize/Resize/Resize.vue +96 -0
  73. package/DemoForOperator/Ripple/Ripple.vue +16 -1
  74. package/DemoForOperator/ScreenShootScale/App.vue +96 -0
  75. package/DemoForOperator/ScreenShootScale/Back.vue +86 -0
  76. package/DemoForOperator/ScreenShootScale/Front.vue +133 -0
  77. package/DemoForOperator/ScreenShootScale/Item.vue +62 -0
  78. package/DemoForOperator/ScreenShootScale/ScreenShootScale.vue +109 -0
  79. package/DemoForOperator/SmoothSwiper/App.vue +50 -0
  80. package/DemoForOperator/Sound/Bounce/App.vue +56 -0
  81. package/DemoForOperator/Sound/Bounce/Bounce.vue +87 -0
  82. package/DemoForOperator/Sound/Bounce/FreeMoveBuilder.js +146 -0
  83. package/DemoForOperator/Sound/Bounce/bgmusic.mp3 +0 -0
  84. package/DemoForOperator/Sound/Bounce/coin.mp3 +0 -0
  85. package/DemoForOperator/Sound/FocusMove/App.vue +134 -0
  86. package/DemoForOperator/Sound/FocusMove/Item.vue +43 -0
  87. package/DemoForOperator/Sound/FocusMove/move.mp3 +0 -0
  88. package/DemoForOperator/Sound/Rain/App.vue +11 -0
  89. package/DemoForOperator/Sound/Rain/Raining/Rain.vue +69 -0
  90. package/DemoForOperator/Sound/Rain/Raining/RainScene.vue +118 -0
  91. package/DemoForOperator/Sound/Sound/Sound.vue +24 -0
  92. package/DemoForOperator/Sound/Sound/index.js +4 -0
  93. package/DemoForOperator/Sound/Sound/useSound.js +112 -0
  94. package/DemoForOperator/Sprite/Sprite.vue +62 -5
  95. package/DemoForOperator/Stretch/Stretch/Stretch.vue +52 -2
  96. package/DemoForOperator/Swiper/App.vue +101 -0
  97. package/DemoForOperator/Swiper/Item.vue +56 -0
  98. package/DemoForOperator/Swiper/ParallaxSlide.vue +164 -0
  99. package/DemoForOperator/TabContent/TabContent/TabContent.vue +39 -1
  100. package/DemoForOperator/TabContentVertical/App.vue +104 -0
  101. package/DemoForOperator/TabContentVertical/ContentPage.vue +67 -0
  102. package/DemoForOperator/TabContentVertical/Item.vue +94 -0
  103. package/DemoForOperator/TabContentVertical/PageItem.vue +40 -0
  104. package/DemoForOperator/TabContentVertical/TabContent/CreepFocus.vue +160 -0
  105. package/DemoForOperator/TabContentVertical/TabContent/Item.vue +63 -0
  106. package/DemoForOperator/TabContentVertical/TabContent/TabContent.vue +184 -0
  107. package/DemoForOperator/TabContentVertical/TabContent/TabItem.vue +368 -0
  108. package/DemoForOperator/TabContentVertical/TabContent/TabWidget.vue +259 -0
  109. package/DemoForOperator/TabContentVertical/TabContent/Util.js +3 -0
  110. package/DemoForOperator/TabContentVertical/TabContent/ViewSwiper.vue +110 -0
  111. package/DemoForOperator/TabContentVertical/assets/children_science.png +0 -0
  112. package/DemoForOperator/TabContentVertical/assets/documentary.png +0 -0
  113. package/DemoForOperator/TabContentVertical/assets/free.png +0 -0
  114. package/DemoForOperator/TabContentVertical/assets/game.png +0 -0
  115. package/DemoForOperator/TabContentVertical/assets/home_selected.png +0 -0
  116. package/DemoForOperator/TabContentVertical/assets/movie_ticket.png +0 -0
  117. package/DemoForOperator/TabContentVertical/assets/my_account.png +0 -0
  118. package/DemoForOperator/TabContentVertical/assets/opera.png +0 -0
  119. package/DemoForOperator/TabContentVertical/assets/sports.png +0 -0
  120. package/DemoForOperator/TabContentVertical/assets/tv_drama.png +0 -0
  121. package/DemoForOperator/TabContentVertical/assets/variety_show.png +0 -0
  122. package/DemoForOperator/TabContentVertical/assets/vip.png +0 -0
  123. package/DemoForOperator/TabContentVertical/testData.js +76 -0
  124. package/DemoForOperator/Vortex/Vortex/Vortex.vue +26 -0
  125. package/DemoForOperator/routeList.js +125 -2
  126. package/DemoHomepage/App.vue +74 -1
  127. package/DemoHomepage/components/BodyFrame.vue +5 -0
  128. package/DemoHomepage/components/Item.vue +11 -0
  129. package/DemoHomepage/components/TabFrame.vue +1 -1
  130. package/DemoHomepage/router.js +798 -140
  131. package/DemoHomepage/views/Homepage.vue +60 -2
  132. package/DemoHomepage/watchTest.vue +50 -0
  133. package/DomRenderer/App.vue +133 -0
  134. package/FilterDemo/AnimatePic.vue +63 -17
  135. package/FilterDemo/App.vue +3 -3
  136. package/FlexCellDemo/AI_skills_update.md +4 -0
  137. package/FlexCellDemo/TestFrame1.vue +12 -2
  138. package/FlexCellDemo/TestFrame2.vue +10 -1
  139. package/FlexCellDemo/TestFrame3.vue +114 -59
  140. package/FpsLimit/App.vue +102 -0
  141. package/FreeMove/App.vue +24 -279
  142. package/FreeMove/TestScene1.vue +260 -0
  143. package/FreeMove/TestScene3.vue +431 -0
  144. package/FreeMoveChildAttract/App.vue +18 -8
  145. package/FreeMoveLink/App.vue +51 -22
  146. package/GiftRain/components/SpriteTranslate.vue +68 -48
  147. package/HashHistory/App.vue +2 -2
  148. package/HashHistory/router.js +1 -1
  149. package/Hover/App.vue +144 -0
  150. package/HttpRequestSSE/SSEReader.js +200 -0
  151. package/ImpactStop/App.vue +2 -2
  152. package/Input/FullKeyboard.vue +3 -3
  153. package/Input/InputPanel.vue +63 -3
  154. package/JsvLine/App.vue +53 -38
  155. package/LatexDemo/App.vue +3 -1
  156. package/LatexFormula/App.vue +196 -0
  157. package/LongImage/App.vue +1 -1
  158. package/LongImage/LongImageScroll.vue +111 -46
  159. package/LongImage/Scroll.vue +28 -9
  160. package/LongText/LongTextScroll.vue +14 -1
  161. package/Markdown/App.vue +36 -0
  162. package/Markdown/Bubble.vue +109 -0
  163. package/Markdown/LongChat.vue +216 -0
  164. package/Markdown/data.js +633 -0
  165. package/MetroWidgetDemos/AI_skills_update.md +2 -0
  166. package/MetroWidgetDemos/EpgFlowListType/App.vue +206 -0
  167. package/MetroWidgetDemos/EpgFlowListType/components/ContentCard.vue +105 -0
  168. package/MetroWidgetDemos/EpgFlowListType/components/FloorSection.vue +131 -0
  169. package/MetroWidgetDemos/EpgFlowListType/components/LeftTabItem.vue +41 -0
  170. package/MetroWidgetDemos/EpgFlowListType/data.js +78 -0
  171. package/MetroWidgetDemos/ListExpand/ChildItem.vue +130 -0
  172. package/MetroWidgetDemos/ListExpand/ExpandItem.vue +375 -0
  173. package/MetroWidgetDemos/ListExpand/ExpandItem1.vue +403 -0
  174. package/MetroWidgetDemos/ListExpand/assets/arrow-down.png +0 -0
  175. package/MetroWidgetDemos/ListExpand/assets/up-arrow.png +0 -0
  176. package/MetroWidgetDemos/ListExpand/components/WidgetListHandler.vue +150 -0
  177. package/MetroWidgetDemos/ListExpand/index.vue +88 -0
  178. package/MetroWidgetDemos/ListExpand/list.js +2421 -0
  179. package/MetroWidgetDemos/RefreshDemo/App.vue +14 -1
  180. package/MetroWidgetDemos/RenderAccelerate/App.vue +142 -0
  181. package/MetroWidgetDemos/RenderAccelerate/AppPage.vue +78 -0
  182. package/MetroWidgetDemos/RenderAccelerate/AppTab.vue +62 -0
  183. package/MetroWidgetDemos/RenderAccelerate/ContentItem.vue +409 -0
  184. package/MetroWidgetDemos/{TripleWidget → RenderAccelerate}/Item.vue +6 -3
  185. package/MetroWidgetDemos/RenderAccelerate/TabItem.vue +100 -0
  186. package/MetroWidgetDemos/RenderAccelerate/ViewSwiper.vue +215 -0
  187. package/MetroWidgetDemos/RenderAccelerate/WidgetItem.vue +107 -0
  188. package/MetroWidgetDemos/SkeletonDiagram/App.vue +35 -8
  189. package/MetroWidgetDemos/SkeletonDiagram/Item.vue +11 -2
  190. package/MetroWidgetDemos/SkeletonDiagram/assets/imageList.js +245 -0
  191. package/MetroWidgetDemos/SkeletonDiagram/data.js +3 -3
  192. package/MetroWidgetDemos/SpatialNav/App.vue +177 -0
  193. package/MetroWidgetDemos/SpatialNav/Buttons.vue +83 -0
  194. package/MetroWidgetDemos/SpatialNav/CustomFocus.vue +57 -0
  195. package/MetroWidgetDemos/SpatialNav/Item.vue +71 -0
  196. package/MetroWidgetDemos/SpatialNav/SimpleFloor.vue +86 -0
  197. package/MetroWidgetDemos/SpatialNav/StepMw.vue +113 -0
  198. package/MetroWidgetDemos/SpatialNav/TabContent/TabContent.vue +185 -0
  199. package/MetroWidgetDemos/SpatialNav/TripleSection/TripleSection.vue +69 -0
  200. package/MetroWidgetDemos/SpatialNav/TripleSection/WidgetItem.vue +100 -0
  201. package/MetroWidgetDemos/SpatialNav/TvSection/List.vue +75 -0
  202. package/MetroWidgetDemos/SpatialNav/TvSection/TvSection.vue +91 -0
  203. package/MetroWidgetDemos/basic2/App.vue +407 -0
  204. package/MetroWidgetDemos/basic2/Item.vue +68 -0
  205. package/MetroWidgetDemos/direction/App.vue +22 -0
  206. package/MetroWidgetDemos/gazeFocusDiff/App.vue +126 -0
  207. package/MetroWidgetDemos/gazeFocusDiff/Item.vue +87 -0
  208. package/MetroWidgetDemos/minimalUsage/App.vue +66 -0
  209. package/MetroWidgetDemos/minimalUsage/Item.vue +54 -0
  210. package/MetroWidgetDemos/ninePatchFocusPage/App.vue +23 -7
  211. package/MetroWidgetDemos/ninePatchFocusPage/Item.vue +7 -5
  212. package/MetroWidgetDemos/ninePatchFocusPage/focusConstants.js +2 -0
  213. package/MetroWidgetDemos/routeList.js +229 -8
  214. package/MetroWidgetDemos/slideSetting/App.vue +288 -99
  215. package/MetroWidgetDemos/zIndex/App.vue +117 -0
  216. package/MetroWidgetDemos/zIndex/Item.vue +61 -0
  217. package/NinePatchTester/App.vue +24 -31
  218. package/PosterPacker/App.vue +2 -2
  219. package/PreDecode/App.vue +140 -0
  220. package/ReactiveTest/App.vue +115 -0
  221. package/ReactiveTest/Item.vue +92 -0
  222. package/ReactiveTest/assets/imageList.js +245 -0
  223. package/ReactiveTest/component/TestSmartDiv.vue +50 -0
  224. package/ReactiveTest/component/TestSmartDivSrcList.vue +74 -0
  225. package/ReactiveTest/component/TestSmartImage.vue +46 -0
  226. package/ReactiveTest/component/TestSmartImageSrcList.vue +90 -0
  227. package/ReactiveTest/component/TestSmartImageStyle.vue +41 -0
  228. package/ReactiveTest/data.js +49 -0
  229. package/ScreenToBlob/App.vue +250 -0
  230. package/ScrollBoxTest/App.vue +52 -28
  231. package/ScrollBoxTest/ClipBar.vue +64 -2
  232. package/ScrollBoxTest/NinePatchBar.vue +64 -2
  233. package/ScrollBoxTest/SizeDivBar.vue +64 -2
  234. package/SecTorTest/App.vue +9 -3
  235. package/SpringFestival/SpringFestivalScene/FreeMoveBuilder.js +3 -3
  236. package/SyncDecode/App.vue +137 -0
  237. package/TextSizeLimit/App.vue +211 -0
  238. package/TextureAnimation/App3.vue +11 -1
  239. package/TouchWidget/App.vue +90 -5
  240. package/TouchWidget/WidgetItem.vue +1 -0
  241. package/TransitPage/App.vue +2 -0
  242. package/ViewOpacity/App.vue +19 -0
  243. package/assets/logo.png +0 -0
  244. package/package.json +1 -1
  245. package/DashPath/DashPath.vue +0 -118
  246. package/DemoForOperator/Genie/geniePakcer/Genie.vue +0 -699
  247. package/DemoForOperator/ScalePoster/App.vue +0 -4
  248. package/DemoForOperator/ScalePoster/ScalePoster.vue +0 -0
  249. package/DivMetroPerformance/App.vue +0 -157
  250. package/DivMetroPerformance/Item.vue +0 -58
  251. package/DivMetroPerformance/assets/bg.jpg +0 -0
  252. package/DivMetroPerformance/assets/coupon_content.png +0 -0
  253. package/DivMetroPerformance/assets/coupon_left.png +0 -0
  254. package/DivMetroPerformance/assets/coupon_mid.png +0 -0
  255. package/DivMetroPerformance/assets/coupon_right.png +0 -0
  256. package/DivMetroPerformance/assets/focus_border.png +0 -0
  257. package/DivMetroPerformance/assets/holder_logo.png +0 -0
  258. package/DivMetroPerformance/assets/jrbm.png +0 -0
  259. package/DivMetroPerformance/assets/line_left.png +0 -0
  260. package/DivMetroPerformance/assets/line_mid.png +0 -0
  261. package/DivMetroPerformance/assets/line_right.png +0 -0
  262. package/DivMetroPerformance/assets/loading.png +0 -0
  263. package/DivMetroPerformance/assets/logo.png +0 -0
  264. package/DivMetroPerformance/assets/mcjx.png +0 -0
  265. package/DivMetroPerformance/assets/tao.png +0 -0
  266. package/DivMetroPerformance/assets/tmall.png +0 -0
  267. package/DivMetroPerformance/border.png +0 -0
  268. package/DivMetroPerformance/components/ContentItem.vue +0 -384
  269. package/DivMetroPerformance/components/MyTab.vue +0 -129
  270. package/DivMetroPerformance/data.js +0 -124
  271. package/DivMetroPerformance/utils/GridItem.vue +0 -28
  272. package/DivMetroPerformance/utils/GridPlate.vue +0 -85
  273. package/MediaDemo/App.vue +0 -127
  274. package/MediaDemo/assets/audio-poster.png +0 -0
  275. package/MediaDemo/components/Button.vue +0 -69
  276. package/MediaDemo/components/Controllor.vue +0 -286
  277. package/MediaDemo/components/StatusBar.vue +0 -100
  278. package/MediaDemo/components/frames/AudioFrame.vue +0 -39
  279. package/MediaDemo/components/frames/AudioPoster.vue +0 -48
  280. package/MediaDemo/components/frames/MediaFrame.vue +0 -153
  281. package/MediaDemo/components/frames/VideoFrame.vue +0 -39
  282. package/MetroWidgetDemos/TripleWidget/App.vue +0 -81
  283. package/MetroWidgetDemos/TripleWidget/SWidgetItem.vue +0 -93
  284. package/MetroWidgetDemos/TripleWidget/WidgetItem.vue +0 -111
  285. package/Parkour/App.vue +0 -13
  286. package/Parkour/Common/Context.js +0 -21
  287. package/Parkour/Common/MatchmanInfo.js +0 -62
  288. package/Parkour/Common/Random.js +0 -61
  289. package/Parkour/Common/Sound.js +0 -50
  290. package/Parkour/appConfig/HOW_TO_CONFIG.md +0 -20
  291. package/Parkour/appConfig/app.config.mjs +0 -5
  292. package/Parkour/appConfig/app_sign_private_key_sample.crt +0 -28
  293. package/Parkour/appConfig/app_sign_public_key_sample.pem +0 -9
  294. package/Parkour/appConfig/jsview.config.mjs +0 -39
  295. package/Parkour/assets/Bgimages/bg1.png +0 -0
  296. package/Parkour/assets/Bgimages/bg2.png +0 -0
  297. package/Parkour/assets/Bgimages/bg3.png +0 -0
  298. package/Parkour/assets/Bgimages/bg4.png +0 -0
  299. package/Parkour/assets/Bgimages/bg5.png +0 -0
  300. package/Parkour/assets/audio/jump.mp3 +0 -0
  301. package/Parkour/assets/audio/lose.mp3 +0 -0
  302. package/Parkour/assets/role_skin1/fail.json +0 -44
  303. package/Parkour/assets/role_skin1/fail.png +0 -0
  304. package/Parkour/assets/role_skin1/jump_down.json +0 -20
  305. package/Parkour/assets/role_skin1/jump_down.png +0 -0
  306. package/Parkour/assets/role_skin1/jump_up.json +0 -44
  307. package/Parkour/assets/role_skin1/jump_up.png +0 -0
  308. package/Parkour/assets/role_skin1/roll.json +0 -44
  309. package/Parkour/assets/role_skin1/roll.png +0 -0
  310. package/Parkour/assets/role_skin1/run.json +0 -52
  311. package/Parkour/assets/role_skin1/run.png +0 -0
  312. package/Parkour/components/Backdrop.vue +0 -61
  313. package/Parkour/components/GameSence.vue +0 -602
  314. package/Parkour/components/Matchman.vue +0 -85
  315. package/TextureAnimation/utils/FrameCanvasStore.ts +0 -68
  316. package/TextureAnimation/utils/RotateFrame.vue +0 -146
  317. package/TextureAnimation/utils/circleHaloMask.png +0 -0
  318. package/ThrowMoveDemo/AccelerateDemo.vue +0 -85
  319. package/ThrowMoveDemo/App.vue +0 -104
  320. package/ThrowMoveDemo/LRParabolicDemo.vue +0 -101
  321. package/ThrowMoveDemo/TargetDemo.vue +0 -87
  322. package/ThrowMoveDemo/UDParabolicDemo.vue +0 -92
  323. /package/{AnimPicture/assets → assets}/animated_webp.webp +0 -0
  324. /package/{AnimPicture/assets → assets}/ball_3.webp +0 -0
  325. /package/{AnimPicture/assets → assets}/girl_run.gif +0 -0
  326. /package/{AnimPicture/assets → assets}/quan.webp +0 -0
@@ -1,11 +1,4 @@
1
- <!--
2
- * 【模块 export 内容】
3
- * Fireworks:放烟花组件
4
- * props说明:
5
- * left {Number} 烟花Left位置
6
- * top {Number} 烟花Top位置
7
- *
8
- -->
1
+
9
2
  <template>
10
3
  <JsvPreload
11
4
  :preloadList="preload_info"
@@ -154,10 +147,62 @@ import {
154
147
  } from "jsview";
155
148
  import { _formatInfo } from "./SpriteDeal";
156
149
  import { shallowRef, onMounted, onBeforeUnmount, watch } from "vue";
150
+
151
+ /**
152
+ * 组件属性定义
153
+ */
157
154
  const props = defineProps({
158
- top: { type: Number, require: true },
159
- left: { type: Number, require: true },
160
- srcConfig: { type: Object, require: true },
155
+ /**
156
+ * 烟花中心顶部位置
157
+ * @type {Number}
158
+ * @required
159
+ * @default undefined
160
+ * @unit px
161
+ */
162
+ top: {
163
+ type: Number,
164
+ require: true
165
+ },
166
+
167
+ /**
168
+ * 烟花中心左侧位置
169
+ * @type {Number}
170
+ * @required
171
+ * @default undefined
172
+ * @unit px
173
+ */
174
+ left: {
175
+ type: Number,
176
+ require: true
177
+ },
178
+
179
+ /**
180
+ * 资源路径配置对象
181
+ * @type {Object}
182
+ * @required
183
+ * @property {String} group1_1 粒子效果组1-1图片路径
184
+ * @property {String} group1_2 粒子效果组1-2图片路径
185
+ * @property {String} group2_1 粒子效果组2-1图片路径
186
+ * @property {String} group2_2 粒子效果组2-2图片路径
187
+ * @property {String} group3_1 粒子效果组3-1图片路径
188
+ * @property {String} group3_2 粒子效果组3-2图片路径
189
+ * @property {String} group4_1 粒子效果组4-1图片路径
190
+ * @property {String} group4_2 粒子效果组4-2图片路径
191
+ * @property {String} group5_1 粒子效果组5-1图片路径
192
+ * @property {String} group5_2 粒子效果组5-2图片路径
193
+ * @property {String} ammo 弹药轨迹图片路径
194
+ * @property {String} fireworkSpriteSrc 烟花精灵图路径
195
+ */
196
+ srcConfig: {
197
+ type: Object,
198
+ require: true
199
+ },
200
+ onShoot: {
201
+ type: Function,
202
+ },
203
+ onExplode: {
204
+ type: Function,
205
+ }
161
206
  });
162
207
 
163
208
  //火花图片素材
@@ -197,6 +242,7 @@ const spray = () => {
197
242
  timer.id2 = setTimeout(() => {
198
243
  let randomIndex = Math.floor(Math.random() * sprayArray.length);
199
244
  sprayArray[randomIndex].value = true;
245
+ onExplode()
200
246
  timer.id = setInterval(() => {
201
247
  let remainingItems = sprayArray.filter((item) => !item.value);
202
248
  if (remainingItems.length === 0) {
@@ -205,6 +251,7 @@ const spray = () => {
205
251
  } else {
206
252
  randomIndex = Math.floor(Math.random() * remainingItems.length);
207
253
  remainingItems[randomIndex].value = true;
254
+ onExplode();
208
255
  }
209
256
  }, 100);
210
257
  }, 500);
@@ -316,6 +363,14 @@ for (let i = 1; i <= 5; i++) {
316
363
  remainingGroups.splice(randomIndex, 1);
317
364
  }
318
365
 
366
+ const onShoot = () => {
367
+ props.onShoot?.();
368
+ }
369
+
370
+ const onExplode = () => {
371
+ props.onExplode?.();
372
+ }
373
+
319
374
  watch(readyNum, (n, o) => {
320
375
  if (o != 2 && n == 2) {
321
376
  myShow.value = true;
@@ -337,11 +392,13 @@ watch(readyNum, (n, o) => {
337
392
  cmds.action().stopMoving(),
338
393
  () => {
339
394
  isSpray.value = true;
395
+ onExplode();
340
396
  isShow.value = false;
341
397
  spray();
342
398
  },
343
399
  ]),
344
400
  ]);
401
+ onShoot();
345
402
  }, 0);
346
403
  }
347
404
  });
@@ -17,6 +17,7 @@
17
17
  :shaderStr="shaderSetting.shader"
18
18
  :autoplay="true"
19
19
  :textures="shaderSetting.textures"
20
+ :loadComfirmed="true"
20
21
  :onEnd="onAnimEnd"
21
22
  ></jsv-frag-shader-view>
22
23
 
@@ -63,18 +64,39 @@ import {
63
64
  } from "jsview";
64
65
 
65
66
  const props = defineProps({
67
+ /**
68
+ * 布局配置对象(必填)
69
+ * @type {Object}
70
+ * @property {number} left - 组件左侧位置(单位:px)
71
+ * @property {number} top - 组件顶部位置(单位:px)
72
+ * @property {number} width - 组件宽度(单位:px)
73
+ * @property {number} height - 组件高度(单位:px)
74
+ */
66
75
  layout: {
67
76
  type: Object,
68
77
  required: true,
69
78
  },
79
+
80
+ /**
81
+ * 翻页动画持续时间(单位:秒)
82
+ * @type {number}
83
+ * @default 1
84
+ */
70
85
  duration: {
71
86
  type: Number,
72
87
  default: 1,
73
88
  },
89
+
90
+ /**
91
+ * 初始显示状态
92
+ * @type {boolean}
93
+ * @default true
94
+ * @description true表示初始显示内容,false表示初始隐藏内容
95
+ */
74
96
  initShow: {
75
97
  type: Boolean,
76
98
  default: true,
77
- },
99
+ }
78
100
  });
79
101
 
80
102
  const showOrigin = shallowRef(props.initShow);
@@ -137,6 +159,13 @@ function capture() {
137
159
  }
138
160
 
139
161
  defineExpose({
162
+ /**
163
+ * 切换显示/隐藏状态
164
+ * @method
165
+ * @description 触发翻页动画切换:
166
+ * - 当前显示时调用会执行翻出动画
167
+ * - 当前隐藏时调用会执行翻入动画
168
+ */
140
169
  switch() {
141
170
  if (state == 0) {
142
171
  state = 1;
@@ -6,32 +6,57 @@
6
6
  :centerWidth="2"
7
7
  :imageDspWidth="sampleImageWidth"
8
8
  :borderOutset="borderWidth"
9
- animation="breath 2s infinite"
9
+ :animation="anim"
10
10
  />
11
11
  </template>
12
12
  <script setup>
13
13
  import { JsvNinePatch, JsvTextureStoreApi } from "jsview";
14
- import { onBeforeUnmount } from "vue";
14
+ import { onBeforeUnmount, computed } from "vue";
15
15
 
16
16
  const props = defineProps({
17
+ /**
18
+ * 焦点框颜色
19
+ * @type {string}
20
+ */
17
21
  color: {
18
22
  type: String,
19
23
  },
24
+ /**
25
+ * 布局样式对象
26
+ * @type {Object}
27
+ */
20
28
  layout: {
21
29
  type: Object,
22
30
  },
31
+ /**
32
+ * 边框宽度
33
+ * @type {number}
34
+ */
23
35
  borderWidth: {
24
36
  type: Number,
25
37
  },
38
+ /**
39
+ * 呼吸动画周期时长(单位:秒)
40
+ * @type {number}
41
+ */
26
42
  duration: {
27
43
  type: Number
28
44
  },
45
+ /**
46
+ * 圆角半径
47
+ * @type {number}
48
+ * @default 10
49
+ */
29
50
  borderRadius: {
30
51
  type: Number,
31
52
  default: 10,
32
53
  }
33
54
  });
34
55
 
56
+ const anim = computed(() => {
57
+ return props.duration ? `breath ${props.duration}s infinite` : 'breath 2s infinite';
58
+ });
59
+
35
60
  let canvasRef;
36
61
  let circleRadius = props.borderRadius;
37
62
  let sampleImageWidth = circleRadius * 2 + props.borderWidth + 2;
@@ -46,6 +46,7 @@ props.onAction.register("onClick", onClick);
46
46
  backgroundImage: bgImage,
47
47
  lineHeight: data.height,
48
48
  textAlign: 'center',
49
+ borderRadius: '10',
49
50
  }"
50
51
  >
51
52
  明暗
@@ -47,6 +47,7 @@ props.onAction.register("onClick", onClick);
47
47
  backgroundImage: bgImage,
48
48
  lineHeight: data.height,
49
49
  textAlign: 'center',
50
+ borderRadius: '10',
50
51
  }"
51
52
  >
52
53
  旋转光
@@ -15,30 +15,71 @@
15
15
 
16
16
  <script setup>
17
17
  import RotateFrame from "./utils/RotateFrame.vue";
18
+
18
19
  const props = defineProps({
20
+ /**
21
+ * 聚焦框使用的图片资源路径
22
+ * @type {String}
23
+ * @required
24
+ */
19
25
  src: {
20
26
  type: String,
21
27
  required: true,
22
28
  },
29
+
30
+ /**
31
+ * 布局位置和尺寸配置
32
+ * @type {Object}
33
+ * @property {number} left - 左侧定位(单位:像素)
34
+ * @property {number} top - 顶部定位(单位:像素)
35
+ * @property {number} width - 容器宽度(单位:像素)
36
+ * @property {number} height - 容器高度(单位:像素)
37
+ */
23
38
  layout: {
24
39
  type: Object,
25
40
  },
41
+
42
+ /**
43
+ * 边框线宽(单位:像素)
44
+ * @type {Number}
45
+ * @default 6
46
+ */
26
47
  borderWidth: {
27
48
  type: Number,
28
49
  default: 6,
29
50
  },
51
+
52
+ /**
53
+ * 边框圆角半径(单位:像素)
54
+ * @type {Number}
55
+ */
30
56
  borderRadius: {
31
57
  type: Number,
32
58
  },
59
+
60
+ /**
61
+ * 边框旋转一周所需时间(单位:秒)
62
+ * @type {Number}
63
+ */
33
64
  circleTime: {
34
- //秒
35
65
  type: Number,
36
66
  },
67
+
68
+ /**
69
+ * 是否显示光晕效果
70
+ * @type {Boolean}
71
+ */
37
72
  withHalo: {
38
73
  type: Boolean,
39
74
  },
40
75
  });
41
76
 
77
+ /**
78
+ * 纹理坐标最大视图尺寸配置
79
+ * @type {Object}
80
+ * @property {number} width - 最大视图宽度
81
+ * @property {number} height - 最大视图高度
82
+ */
42
83
  const texCoord = {
43
84
  width: 500,
44
85
  height: 500,
@@ -46,6 +46,7 @@ props.onAction.register("onClick", onClick);
46
46
  backgroundImage: bgImage,
47
47
  lineHeight: data.height,
48
48
  textAlign: 'center',
49
+ borderRadius: '10',
49
50
  }"
50
51
  >
51
52
  普通
@@ -12,17 +12,25 @@
12
12
  import { JsvNinePatch, JsvTextureStoreApi } from "jsview";
13
13
  import { onBeforeUnmount } from "vue";
14
14
 
15
+ /**
16
+ * 定义组件属性
17
+ * @type {Props}
18
+ */
15
19
  const props = defineProps({
20
+ /** @type {String} 边框颜色 */
16
21
  color: {
17
22
  type: String,
18
23
  },
24
+ /** @type {Object} 布局样式配置 */
19
25
  layout: {
20
26
  type: Object
21
27
  },
28
+ /** @type {Number} 边框宽度(默认3像素) */
22
29
  borderWidth: {
23
30
  type: Number,
24
31
  default: 3,
25
32
  },
33
+ /** @type {Number} 圆角半径(默认0像素) */
26
34
  borderRadius: {
27
35
  type: Number,
28
36
  default: 0
@@ -47,6 +55,10 @@ canvasRef.drawColor("rgba(0,0,0,0)"); // 画布绘制半透明底色
47
55
  customPath.stroke(circleLineWidth, props.color); // 以给定线宽绘制圆环
48
56
  const sourceId = canvasRef.commit(); // texture和div的textureStore绑定
49
57
 
58
+ /**
59
+ * 组件卸载前的清理操作
60
+ * @listens onBeforeUnmount
61
+ */
50
62
  onBeforeUnmount(() => {
51
63
  JsvTextureStoreApi.deleteTexture(sourceId);
52
64
  });
@@ -0,0 +1,193 @@
1
+ <template>
2
+ <div>
3
+ <div :style="{ width: 1280, height: 720, backgroundColor: '#FFF0F0' }" />
4
+ <div :style="{ left: 100, top: 100 }">
5
+ <FrameShadow
6
+ :width="vTargetRectWidth"
7
+ :height="vTargetRectHeight"
8
+ :borderRadius="vTargetRectRaidus"
9
+ />
10
+ <JsvFlexDiv
11
+ :style="{
12
+ width: vTargetRectWidth,
13
+ height: vTargetRectHeight,
14
+ alignItems: 'center',
15
+ backgroundColor: 'rgba(128, 128, 0, 0.5)',
16
+ borderRadius: vTargetRectRaidus,
17
+ }"
18
+ >
19
+ <div
20
+ :style="{
21
+ width: vTargetRectWidth,
22
+ textAlign: 'center',
23
+ fontSize: 10,
24
+ lineHeight: 12,
25
+ }"
26
+ >
27
+ {{ `圆角为${vTargetRectRaidus}的矩形` }}
28
+ </div>
29
+ </JsvFlexDiv>
30
+ </div>
31
+ <div :style="{ left: 450, top: 100 }">
32
+ <FrameShadow
33
+ :width="vTargetRectWidth1"
34
+ :height="vTargetRectHeight1"
35
+ :borderRadius="vTargetRectRaidus1"
36
+ />
37
+ <JsvFlexDiv
38
+ :style="{
39
+ width: vTargetRectWidth1,
40
+ height: vTargetRectHeight1,
41
+ alignItems: 'center',
42
+ backgroundColor: 'rgba(128, 128, 0, 0.5)',
43
+ borderRadius: vTargetRectRaidus1,
44
+ }"
45
+ >
46
+ <div
47
+ :style="{
48
+ width: vTargetRectWidth1,
49
+ textAlign: 'center',
50
+ fontSize: 10,
51
+ lineHeight: 12,
52
+ }"
53
+ >
54
+ {{ `圆角为${vTargetRectRaidus1}的矩形` }}
55
+ </div>
56
+ </JsvFlexDiv>
57
+ </div>
58
+ <div :style="{ left: 800, top: 100 }">
59
+ <FrameShadow
60
+ :width="vTargetRectWidth2"
61
+ :height="vTargetRectHeight2"
62
+ :borderRadius="vTargetRectRaidus2"
63
+ />
64
+ <JsvFlexDiv
65
+ :style="{
66
+ width: vTargetRectWidth2,
67
+ height: vTargetRectHeight2,
68
+ alignItems: 'center',
69
+ backgroundColor: 'rgba(128, 128, 0, 0.5)',
70
+ borderRadius: vTargetRectRaidus2,
71
+ }"
72
+ >
73
+ <div
74
+ :style="{
75
+ width: vTargetRectWidth2,
76
+ textAlign: 'center',
77
+ fontSize: 10,
78
+ lineHeight: 12,
79
+ }"
80
+ >
81
+ {{ `圆角为${vTargetRectRaidus2}的矩形` }}
82
+ </div>
83
+ </JsvFlexDiv>
84
+ </div>
85
+
86
+ <div :style="{ left: 100, top: 400 }">
87
+ <FrameShadow
88
+ :width="vTargetRectWidth"
89
+ :height="vTargetRectHeight"
90
+ :borderRadius="vTargetRectRaidus"
91
+ type="down"
92
+ />
93
+ <JsvFlexDiv
94
+ :style="{
95
+ width: vTargetRectWidth,
96
+ height: vTargetRectHeight,
97
+ alignItems: 'center',
98
+ backgroundColor: 'rgba(128, 128, 0, 0.5)',
99
+ borderRadius: vTargetRectRaidus,
100
+ }"
101
+ >
102
+ <div
103
+ :style="{
104
+ width: vTargetRectWidth,
105
+ textAlign: 'center',
106
+ fontSize: 10,
107
+ lineHeight: 12,
108
+ }"
109
+ >
110
+ {{ `圆角为${vTargetRectRaidus}的矩形` }}
111
+ </div>
112
+ </JsvFlexDiv>
113
+ </div>
114
+
115
+ <div :style="{ left: 450, top: 400 }">
116
+ <FrameShadow
117
+ :width="vTargetRectWidth1"
118
+ :height="vTargetRectHeight1"
119
+ :borderRadius="vTargetRectRaidus1"
120
+ type="down"
121
+ />
122
+ <JsvFlexDiv
123
+ :style="{
124
+ width: vTargetRectWidth1,
125
+ height: vTargetRectHeight1,
126
+ alignItems: 'center',
127
+ backgroundColor: 'rgba(128, 128, 0, 0.5)',
128
+ borderRadius: vTargetRectRaidus1,
129
+ }"
130
+ >
131
+ <div
132
+ :style="{
133
+ width: vTargetRectWidth1,
134
+ textAlign: 'center',
135
+ fontSize: 10,
136
+ lineHeight: 12,
137
+ }"
138
+ >
139
+ {{ `圆角为${vTargetRectRaidus1}的矩形` }}
140
+ </div>
141
+ </JsvFlexDiv>
142
+ </div>
143
+
144
+ <div :style="{ left: 800, top: 400 }">
145
+ <FrameShadow
146
+ :width="vTargetRectWidth2"
147
+ :height="vTargetRectHeight2"
148
+ :borderRadius="vTargetRectRaidus2"
149
+ type="down"
150
+ />
151
+ <JsvFlexDiv
152
+ :style="{
153
+ width: vTargetRectWidth2,
154
+ height: vTargetRectHeight2,
155
+ alignItems: 'center',
156
+ backgroundColor: 'rgba(128, 128, 0, 0.5)',
157
+ borderRadius: vTargetRectRaidus2,
158
+ }"
159
+ >
160
+ <div
161
+ :style="{
162
+ width: vTargetRectWidth2,
163
+ textAlign: 'center',
164
+ fontSize: 10,
165
+ lineHeight: 12,
166
+ }"
167
+ >
168
+ {{ `圆角为${vTargetRectRaidus2}的矩形` }}
169
+ </div>
170
+ </JsvFlexDiv>
171
+ </div>
172
+ </div>
173
+ </template>
174
+
175
+ <script setup>
176
+ import { JsvFlexDiv } from "jsview";
177
+ import FrameShadow from "./FrameShadow.vue";
178
+
179
+ // 圆角为45的矩形样例
180
+ const vTargetRectWidth = 250; // 需要对齐区域的矩形宽
181
+ const vTargetRectHeight = 150; // 需要对齐区域的矩形高
182
+ const vTargetRectRaidus = 45; // 需要对齐区域的圆角半径,请和圆环内径对应的半径一致才能套齐
183
+
184
+ // 圆角为13的矩形样例
185
+ const vTargetRectWidth1 = 250; // 需要对齐区域的矩形宽
186
+ const vTargetRectHeight1 = 150; // 需要对齐区域的矩形高
187
+ const vTargetRectRaidus1 = 13; // 需要对齐区域的圆角半径,请和圆环内径对应的半径一致才能套齐
188
+
189
+ // 最小圆角尺寸样例,在此框架下不能低于4
190
+ const vTargetRectWidth2 = 250; // 需要对齐区域的矩形宽
191
+ const vTargetRectHeight2 = 150; // 需要对齐区域的矩形高
192
+ const vTargetRectRaidus2 = 4; // 需要对齐区域的圆角半径,请和圆环内径对应的半径一致才能套齐
193
+ </script>
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <div>
3
+ <JsvNinePatch
4
+ :style="{
5
+ width: props.width,
6
+ height: props.height,
7
+ }"
8
+ :imageUrl="vImageUrl"
9
+ :imageWidth="vImageWidth"
10
+ :centerWidth="cCenterWidth"
11
+ :imageDspWidth="vImageDspWidth"
12
+ :borderOutset="vBorderOutset"
13
+ />
14
+ </div>
15
+ </template>
16
+
17
+ <script setup>
18
+ import { JsvNinePatch } from "jsview";
19
+
20
+ // 接收宽高作为props
21
+ const props = defineProps({
22
+ width: {
23
+ type: Number,
24
+ required: true,
25
+ },
26
+ height: {
27
+ type: Number,
28
+ required: true,
29
+ },
30
+ borderRadius: {
31
+ type: Number,
32
+ required: true,
33
+ },
34
+ type: {
35
+ type: String,
36
+ default: "surround",
37
+ },
38
+ });
39
+
40
+ // 图片资源映射
41
+ const cImageMaps = {
42
+ surround:
43
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources-2/DemoForOperator/FrameShadow/FrameShadow.png",
44
+ down: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources-2/DemoForOperator/FrameShadow/FrameShadow-down.png",
45
+ };
46
+ const vImageUrl = cImageMaps[props.type];
47
+ if (vImageUrl === undefined) {
48
+ vImageUrl = cImageMaps["surround"];
49
+ }
50
+
51
+ // 图片固定属性
52
+ const cInnerRadius2 = 92; // 原始图片的内直径(也是右边图矩形的边长值)
53
+ const cCenterWidth = 2; // 图片的中心repeat宽度
54
+ const cInnerRadius = (cInnerRadius2 - cCenterWidth) / 2; // 原始图片圆角半径
55
+ const cSampleImageWidth = 200; // 原始图形的画布尺寸,画布为正方形
56
+
57
+ // 计算后的对应NinePatch参数
58
+ let vBorderOutset = (cSampleImageWidth - cInnerRadius2) / 2; // 设置值为图片长度减去内直径除以2
59
+ let vImageWidth = cSampleImageWidth; // 原图尺寸设置
60
+ let vImageDspWidth = (props.borderRadius / cInnerRadius) * cSampleImageWidth; // 显示图尺寸,当想复用目标图片,但是半径又不想等时才和原图不一样
61
+ </script>
@@ -100,6 +100,6 @@ onMounted(() => {
100
100
  v-if="fullScreenVisibility"
101
101
  :src="imageUrl"
102
102
  :width="1280"
103
- :duration="800"
103
+ :duration="0.8"
104
104
  ></fullscreen-poster>
105
105
  </template>
@@ -10,24 +10,39 @@
10
10
 
11
11
  <script setup>
12
12
  const props = defineProps({
13
+ /**
14
+ * 图片资源地址
15
+ * @type {String}
16
+ * @required
17
+ */
13
18
  src: {
14
19
  type: String,
15
20
  required: true,
16
21
  },
22
+ /**
23
+ * 动画持续时间(单位:秒)
24
+ * @type {Number}
25
+ * @default 0.8
26
+ */
17
27
  duration: {
18
28
  type: Number,
19
- default: 800,
29
+ default: 0.8,
20
30
  },
31
+ /**
32
+ * 图片显示宽度(单位:像素)
33
+ * @type {Number}
34
+ * @required
35
+ */
21
36
  width: {
22
37
  type: Number,
23
38
  required: true,
24
39
  },
25
40
  });
26
41
 
27
- const animStr = `fade-in ${props.duration / 1000}s`;
42
+ const animStr = `fade-in ${props.duration}s`;
28
43
  </script>
29
44
 
30
- <style scopped>
45
+ <style scoped>
31
46
  @keyframes fade-in {
32
47
  from {
33
48
  opacity: 0;