@shijiu/jsview-vue-samples 2.3.0 → 3.0.0-next-vue.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 (320) 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/CssPreprocessor/Scss/PanelData.js +1 -1
  24. package/CssPreprocessor/Scss/components/scss-group4/ScssMaps.vue +4 -3
  25. package/CssPreprocessor/Scss/components/scss-group5/ScssImporting.vue +2 -2
  26. package/DashPath/App.vue +17 -16
  27. package/DashPath/AppForOperator.vue +2 -4
  28. package/DemoForOperator/AnimPic/AnimPic.vue +24 -2
  29. package/DemoForOperator/Banger/Banger/Banger.vue +73 -9
  30. package/DemoForOperator/Blur/Blur.vue +146 -0
  31. package/DemoForOperator/Blur/BlurInOut/BlurInOut.vue +158 -0
  32. package/DemoForOperator/Blur/BlurInOut/StaticBgSlide.vue +162 -0
  33. package/DemoForOperator/Blur/BlurPopup/BlurPopup.vue +113 -0
  34. package/DemoForOperator/BookFlip/App.vue +115 -0
  35. package/DemoForOperator/BookFlip/BookFlip/FlipPage.vue +179 -0
  36. package/DemoForOperator/BookFlip/BookFlip/FlippingBook.vue +310 -0
  37. package/DemoForOperator/BookFlip/BookFlip/flip.glsl +135 -0
  38. package/DemoForOperator/BookFlip/BookPage.vue +82 -0
  39. package/DemoForOperator/Bounce/Bounce.vue +33 -1
  40. package/DemoForOperator/Bounce/FreeMoveBuilder.js +1 -1
  41. package/DemoForOperator/ChunLian/Couplets.vue +44 -1
  42. package/DemoForOperator/ClickSpriteAnim/App.vue +130 -0
  43. package/DemoForOperator/ClickSpriteAnim/Item.vue +74 -0
  44. package/DemoForOperator/DominantColor/App.vue +187 -0
  45. package/DemoForOperator/EpisodeList/EpisodeList/Controller.vue +0 -3
  46. package/DemoForOperator/EpisodeList/EpisodeList/EpisodeList.vue +76 -2
  47. package/DemoForOperator/Firework1/App.vue +13 -2
  48. package/DemoForOperator/Firework1/Fireworks.vue +68 -11
  49. package/DemoForOperator/FlipPage/FlipPage/FlipPage.vue +30 -1
  50. package/DemoForOperator/Focus/Alpha/AlphaFocusBox.vue +27 -2
  51. package/DemoForOperator/Focus/Alpha/Item.vue +1 -0
  52. package/DemoForOperator/Focus/Light/Item.vue +1 -0
  53. package/DemoForOperator/Focus/Light/LightFocusBox.vue +42 -1
  54. package/DemoForOperator/Focus/Normal/Item.vue +1 -0
  55. package/DemoForOperator/Focus/Normal/NormalFocusBox.vue +12 -0
  56. package/DemoForOperator/FrameShadow/App.vue +193 -0
  57. package/DemoForOperator/FrameShadow/FrameShadow.vue +61 -0
  58. package/DemoForOperator/FullscreenIn/App.vue +1 -1
  59. package/DemoForOperator/FullscreenIn/FullscreenPoster.vue +18 -3
  60. package/DemoForOperator/Genie/App.vue +20 -6
  61. package/DemoForOperator/Genie/App2.vue +61 -0
  62. package/DemoForOperator/Genie/geniePakcer/GenieImage.vue +298 -0
  63. package/DemoForOperator/Genie/geniePakcer/GenieSlot.vue +292 -0
  64. package/DemoForOperator/Genie/geniePakcer/GenieTools.ts +463 -0
  65. package/DemoForOperator/GrayFilter/GrayFilter.vue +21 -0
  66. package/DemoForOperator/Jigsaw/JigsawFull.vue +58 -11
  67. package/DemoForOperator/Jigsaw/JigsawSingle.vue +47 -9
  68. package/DemoForOperator/LongChatBox/App.vue +36 -0
  69. package/DemoForOperator/LongChatBox/Bubble.vue +116 -0
  70. package/DemoForOperator/LongChatBox/LongChat.vue +205 -0
  71. package/DemoForOperator/LongChatBox/testData.js +14 -0
  72. package/DemoForOperator/Particle/Drop/DropParticle.vue +33 -1
  73. package/DemoForOperator/Particle/Explode/ExplodeParticle.vue +23 -2
  74. package/DemoForOperator/PosterAnim/PosterAnim.js +21 -0
  75. package/DemoForOperator/PosterOverflow/PosterOverflow.vue +16 -0
  76. package/DemoForOperator/Resize/App.vue +157 -0
  77. package/DemoForOperator/Resize/Resize/Item.vue +234 -0
  78. package/DemoForOperator/Resize/Resize/Resize.vue +96 -0
  79. package/DemoForOperator/Ripple/Ripple.vue +16 -1
  80. package/DemoForOperator/ScreenShootScale/App.vue +96 -0
  81. package/DemoForOperator/ScreenShootScale/Back.vue +86 -0
  82. package/DemoForOperator/ScreenShootScale/Front.vue +133 -0
  83. package/DemoForOperator/ScreenShootScale/Item.vue +62 -0
  84. package/DemoForOperator/ScreenShootScale/ScreenShootScale.vue +109 -0
  85. package/DemoForOperator/SmoothSwiper/App.vue +50 -0
  86. package/DemoForOperator/Sound/Bounce/App.vue +56 -0
  87. package/DemoForOperator/Sound/Bounce/Bounce.vue +87 -0
  88. package/DemoForOperator/Sound/Bounce/FreeMoveBuilder.js +146 -0
  89. package/DemoForOperator/Sound/Bounce/bgmusic.mp3 +0 -0
  90. package/DemoForOperator/Sound/Bounce/coin.mp3 +0 -0
  91. package/DemoForOperator/Sound/FocusMove/App.vue +134 -0
  92. package/DemoForOperator/Sound/FocusMove/Item.vue +43 -0
  93. package/DemoForOperator/Sound/FocusMove/move.mp3 +0 -0
  94. package/DemoForOperator/Sound/Rain/App.vue +11 -0
  95. package/DemoForOperator/Sound/Rain/Raining/Rain.vue +69 -0
  96. package/DemoForOperator/Sound/Rain/Raining/RainScene.vue +118 -0
  97. package/DemoForOperator/Sound/Sound/Sound.vue +24 -0
  98. package/DemoForOperator/Sound/Sound/index.js +4 -0
  99. package/DemoForOperator/Sound/Sound/useSound.js +112 -0
  100. package/DemoForOperator/Sprite/Sprite.vue +62 -5
  101. package/DemoForOperator/Stretch/Stretch/Stretch.vue +52 -2
  102. package/DemoForOperator/Swiper/App.vue +101 -0
  103. package/DemoForOperator/Swiper/Item.vue +56 -0
  104. package/DemoForOperator/Swiper/ParallaxSlide.vue +164 -0
  105. package/DemoForOperator/TabContent/TabContent/TabContent.vue +39 -1
  106. package/DemoForOperator/TabContentVertical/App.vue +104 -0
  107. package/DemoForOperator/TabContentVertical/ContentPage.vue +67 -0
  108. package/DemoForOperator/TabContentVertical/Item.vue +94 -0
  109. package/DemoForOperator/TabContentVertical/PageItem.vue +40 -0
  110. package/DemoForOperator/TabContentVertical/TabContent/CreepFocus.vue +160 -0
  111. package/DemoForOperator/TabContentVertical/TabContent/Item.vue +63 -0
  112. package/DemoForOperator/TabContentVertical/TabContent/TabContent.vue +184 -0
  113. package/DemoForOperator/TabContentVertical/TabContent/TabItem.vue +368 -0
  114. package/DemoForOperator/TabContentVertical/TabContent/TabWidget.vue +259 -0
  115. package/DemoForOperator/TabContentVertical/TabContent/Util.js +3 -0
  116. package/DemoForOperator/TabContentVertical/TabContent/ViewSwiper.vue +110 -0
  117. package/DemoForOperator/TabContentVertical/assets/children_science.png +0 -0
  118. package/DemoForOperator/TabContentVertical/assets/documentary.png +0 -0
  119. package/DemoForOperator/TabContentVertical/assets/free.png +0 -0
  120. package/DemoForOperator/TabContentVertical/assets/game.png +0 -0
  121. package/DemoForOperator/TabContentVertical/assets/home_selected.png +0 -0
  122. package/DemoForOperator/TabContentVertical/assets/movie_ticket.png +0 -0
  123. package/DemoForOperator/TabContentVertical/assets/my_account.png +0 -0
  124. package/DemoForOperator/TabContentVertical/assets/opera.png +0 -0
  125. package/DemoForOperator/TabContentVertical/assets/sports.png +0 -0
  126. package/DemoForOperator/TabContentVertical/assets/tv_drama.png +0 -0
  127. package/DemoForOperator/TabContentVertical/assets/variety_show.png +0 -0
  128. package/DemoForOperator/TabContentVertical/assets/vip.png +0 -0
  129. package/DemoForOperator/TabContentVertical/testData.js +76 -0
  130. package/DemoForOperator/Vortex/Vortex/Vortex.vue +26 -0
  131. package/DemoForOperator/routeList.js +125 -2
  132. package/DemoHomepage/App.vue +74 -1
  133. package/DemoHomepage/components/BodyFrame.vue +1 -0
  134. package/DemoHomepage/components/Item.vue +11 -0
  135. package/DemoHomepage/components/TabFrame.vue +1 -1
  136. package/DemoHomepage/router.js +772 -135
  137. package/DemoHomepage/views/Homepage.vue +60 -2
  138. package/DemoHomepage/watchTest.vue +50 -0
  139. package/FilterDemo/AnimatePic.vue +63 -17
  140. package/FilterDemo/App.vue +3 -3
  141. package/FlexCellDemo/AI_skills_update.md +4 -0
  142. package/FlexCellDemo/TestFrame1.vue +12 -2
  143. package/FlexCellDemo/TestFrame2.vue +10 -1
  144. package/FlexCellDemo/TestFrame3.vue +114 -59
  145. package/FpsLimit/App.vue +102 -0
  146. package/FreeMoveChildAttract/App.vue +18 -8
  147. package/FreeMoveLink/App.vue +49 -20
  148. package/GiftRain/components/SpriteTranslate.vue +68 -48
  149. package/HashHistory/App.vue +2 -2
  150. package/HashHistory/router.js +1 -1
  151. package/Hover/App.vue +144 -0
  152. package/HttpRequestSSE/SSEReader.js +200 -0
  153. package/ImpactStop/App.vue +2 -2
  154. package/Input/FullKeyboard.vue +3 -3
  155. package/Input/InputPanel.vue +63 -3
  156. package/JsvLine/App.vue +53 -38
  157. package/LatexDemo/App.vue +3 -1
  158. package/LatexFormula/App.vue +196 -0
  159. package/LongImage/App.vue +1 -1
  160. package/LongImage/LongImageScroll.vue +100 -47
  161. package/LongImage/Scroll.vue +28 -9
  162. package/LongText/LongTextScroll.vue +1 -0
  163. package/Markdown/App.vue +36 -0
  164. package/Markdown/Bubble.vue +109 -0
  165. package/Markdown/LongChat.vue +206 -0
  166. package/Markdown/Markdown/Markdown.vue +156 -0
  167. package/Markdown/Markdown/index.ts +1 -0
  168. package/Markdown/Markdown/marked/LICENSE.md +45 -0
  169. package/Markdown/Markdown/marked/index.ts +2 -0
  170. package/Markdown/Markdown/marked/marked.d.ts +756 -0
  171. package/Markdown/Markdown/marked/marked.js +71 -0
  172. package/Markdown/Markdown/parser.ts +1365 -0
  173. package/Markdown/data.js +581 -0
  174. package/MetroWidgetDemos/AI_skills_update.md +2 -0
  175. package/MetroWidgetDemos/ListExpand/ChildItem.vue +130 -0
  176. package/MetroWidgetDemos/ListExpand/ExpandItem.vue +375 -0
  177. package/MetroWidgetDemos/ListExpand/ExpandItem1.vue +403 -0
  178. package/MetroWidgetDemos/ListExpand/assets/arrow-down.png +0 -0
  179. package/MetroWidgetDemos/ListExpand/assets/up-arrow.png +0 -0
  180. package/MetroWidgetDemos/ListExpand/components/WidgetListHandler.vue +150 -0
  181. package/MetroWidgetDemos/ListExpand/index.vue +88 -0
  182. package/MetroWidgetDemos/ListExpand/list.js +2421 -0
  183. package/MetroWidgetDemos/RefreshDemo/App.vue +14 -1
  184. package/MetroWidgetDemos/RenderAccelerate/App.vue +142 -0
  185. package/MetroWidgetDemos/RenderAccelerate/AppPage.vue +78 -0
  186. package/MetroWidgetDemos/RenderAccelerate/AppTab.vue +62 -0
  187. package/MetroWidgetDemos/RenderAccelerate/ContentItem.vue +409 -0
  188. package/MetroWidgetDemos/{TripleWidget → RenderAccelerate}/Item.vue +6 -3
  189. package/MetroWidgetDemos/RenderAccelerate/TabItem.vue +100 -0
  190. package/MetroWidgetDemos/RenderAccelerate/ViewSwiper.vue +215 -0
  191. package/MetroWidgetDemos/RenderAccelerate/WidgetItem.vue +107 -0
  192. package/MetroWidgetDemos/SkeletonDiagram/App.vue +35 -8
  193. package/MetroWidgetDemos/SkeletonDiagram/Item.vue +11 -2
  194. package/MetroWidgetDemos/SkeletonDiagram/assets/imageList.js +245 -0
  195. package/MetroWidgetDemos/SkeletonDiagram/data.js +3 -3
  196. package/MetroWidgetDemos/SpatialNav/App.vue +177 -0
  197. package/MetroWidgetDemos/SpatialNav/Buttons.vue +83 -0
  198. package/MetroWidgetDemos/SpatialNav/CustomFocus.vue +57 -0
  199. package/MetroWidgetDemos/SpatialNav/Item.vue +71 -0
  200. package/MetroWidgetDemos/SpatialNav/SimpleFloor.vue +86 -0
  201. package/MetroWidgetDemos/SpatialNav/StepMw.vue +113 -0
  202. package/MetroWidgetDemos/SpatialNav/TabContent/TabContent.vue +185 -0
  203. package/MetroWidgetDemos/SpatialNav/TripleSection/TripleSection.vue +69 -0
  204. package/MetroWidgetDemos/SpatialNav/TripleSection/WidgetItem.vue +100 -0
  205. package/MetroWidgetDemos/SpatialNav/TvSection/List.vue +75 -0
  206. package/MetroWidgetDemos/SpatialNav/TvSection/TvSection.vue +91 -0
  207. package/MetroWidgetDemos/basic2/App.vue +407 -0
  208. package/MetroWidgetDemos/basic2/Item.vue +68 -0
  209. package/MetroWidgetDemos/direction/App.vue +22 -0
  210. package/MetroWidgetDemos/gazeFocusDiff/App.vue +126 -0
  211. package/MetroWidgetDemos/gazeFocusDiff/Item.vue +87 -0
  212. package/MetroWidgetDemos/minimalUsage/App.vue +66 -0
  213. package/MetroWidgetDemos/minimalUsage/Item.vue +54 -0
  214. package/MetroWidgetDemos/ninePatchFocusPage/App.vue +22 -7
  215. package/MetroWidgetDemos/ninePatchFocusPage/Item.vue +7 -5
  216. package/MetroWidgetDemos/ninePatchFocusPage/focusConstants.js +2 -0
  217. package/MetroWidgetDemos/routeList.js +216 -8
  218. package/MetroWidgetDemos/slideSetting/App.vue +288 -99
  219. package/MetroWidgetDemos/zIndex/App.vue +117 -0
  220. package/MetroWidgetDemos/zIndex/Item.vue +61 -0
  221. package/NinePatchTester/App.vue +24 -31
  222. package/PosterPacker/App.vue +2 -2
  223. package/PreDecode/App.vue +140 -0
  224. package/ReactiveTest/App.vue +115 -0
  225. package/ReactiveTest/Item.vue +92 -0
  226. package/ReactiveTest/assets/imageList.js +245 -0
  227. package/ReactiveTest/component/TestSmartDiv.vue +50 -0
  228. package/ReactiveTest/component/TestSmartDivSrcList.vue +74 -0
  229. package/ReactiveTest/component/TestSmartImage.vue +46 -0
  230. package/ReactiveTest/component/TestSmartImageSrcList.vue +90 -0
  231. package/ReactiveTest/component/TestSmartImageStyle.vue +41 -0
  232. package/ReactiveTest/data.js +49 -0
  233. package/ScreenToBlob/App.vue +250 -0
  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/TransitPage/App.vue +2 -0
  239. package/ViewOpacity/App.vue +19 -0
  240. package/assets/logo.png +0 -0
  241. package/package.json +5 -5
  242. package/DashPath/DashPath.vue +0 -118
  243. package/DemoForOperator/Genie/geniePakcer/Genie.vue +0 -699
  244. package/DemoForOperator/ScalePoster/App.vue +0 -4
  245. package/DemoForOperator/ScalePoster/ScalePoster.vue +0 -0
  246. package/DivMetroPerformance/App.vue +0 -157
  247. package/DivMetroPerformance/Item.vue +0 -58
  248. package/DivMetroPerformance/assets/bg.jpg +0 -0
  249. package/DivMetroPerformance/assets/coupon_content.png +0 -0
  250. package/DivMetroPerformance/assets/coupon_left.png +0 -0
  251. package/DivMetroPerformance/assets/coupon_mid.png +0 -0
  252. package/DivMetroPerformance/assets/coupon_right.png +0 -0
  253. package/DivMetroPerformance/assets/focus_border.png +0 -0
  254. package/DivMetroPerformance/assets/holder_logo.png +0 -0
  255. package/DivMetroPerformance/assets/jrbm.png +0 -0
  256. package/DivMetroPerformance/assets/line_left.png +0 -0
  257. package/DivMetroPerformance/assets/line_mid.png +0 -0
  258. package/DivMetroPerformance/assets/line_right.png +0 -0
  259. package/DivMetroPerformance/assets/loading.png +0 -0
  260. package/DivMetroPerformance/assets/logo.png +0 -0
  261. package/DivMetroPerformance/assets/mcjx.png +0 -0
  262. package/DivMetroPerformance/assets/tao.png +0 -0
  263. package/DivMetroPerformance/assets/tmall.png +0 -0
  264. package/DivMetroPerformance/border.png +0 -0
  265. package/DivMetroPerformance/components/ContentItem.vue +0 -384
  266. package/DivMetroPerformance/components/MyTab.vue +0 -129
  267. package/DivMetroPerformance/data.js +0 -124
  268. package/DivMetroPerformance/utils/GridItem.vue +0 -28
  269. package/DivMetroPerformance/utils/GridPlate.vue +0 -85
  270. package/MediaDemo/App.vue +0 -127
  271. package/MediaDemo/assets/audio-poster.png +0 -0
  272. package/MediaDemo/components/Button.vue +0 -69
  273. package/MediaDemo/components/Controllor.vue +0 -286
  274. package/MediaDemo/components/StatusBar.vue +0 -100
  275. package/MediaDemo/components/frames/AudioFrame.vue +0 -39
  276. package/MediaDemo/components/frames/AudioPoster.vue +0 -48
  277. package/MediaDemo/components/frames/MediaFrame.vue +0 -153
  278. package/MediaDemo/components/frames/VideoFrame.vue +0 -39
  279. package/MetroWidgetDemos/TripleWidget/App.vue +0 -81
  280. package/MetroWidgetDemos/TripleWidget/SWidgetItem.vue +0 -93
  281. package/MetroWidgetDemos/TripleWidget/WidgetItem.vue +0 -111
  282. package/Parkour/App.vue +0 -13
  283. package/Parkour/Common/Context.js +0 -21
  284. package/Parkour/Common/MatchmanInfo.js +0 -62
  285. package/Parkour/Common/Random.js +0 -61
  286. package/Parkour/Common/Sound.js +0 -50
  287. package/Parkour/appConfig/HOW_TO_CONFIG.md +0 -20
  288. package/Parkour/appConfig/app.config.mjs +0 -5
  289. package/Parkour/appConfig/app_sign_private_key_sample.crt +0 -28
  290. package/Parkour/appConfig/app_sign_public_key_sample.pem +0 -9
  291. package/Parkour/appConfig/jsview.config.mjs +0 -39
  292. package/Parkour/assets/Bgimages/bg1.png +0 -0
  293. package/Parkour/assets/Bgimages/bg2.png +0 -0
  294. package/Parkour/assets/Bgimages/bg3.png +0 -0
  295. package/Parkour/assets/Bgimages/bg4.png +0 -0
  296. package/Parkour/assets/Bgimages/bg5.png +0 -0
  297. package/Parkour/assets/audio/jump.mp3 +0 -0
  298. package/Parkour/assets/audio/lose.mp3 +0 -0
  299. package/Parkour/assets/role_skin1/fail.json +0 -44
  300. package/Parkour/assets/role_skin1/fail.png +0 -0
  301. package/Parkour/assets/role_skin1/jump_down.json +0 -20
  302. package/Parkour/assets/role_skin1/jump_down.png +0 -0
  303. package/Parkour/assets/role_skin1/jump_up.json +0 -44
  304. package/Parkour/assets/role_skin1/jump_up.png +0 -0
  305. package/Parkour/assets/role_skin1/roll.json +0 -44
  306. package/Parkour/assets/role_skin1/roll.png +0 -0
  307. package/Parkour/assets/role_skin1/run.json +0 -52
  308. package/Parkour/assets/role_skin1/run.png +0 -0
  309. package/Parkour/components/Backdrop.vue +0 -61
  310. package/Parkour/components/GameSence.vue +0 -602
  311. package/Parkour/components/Matchman.vue +0 -85
  312. package/ThrowMoveDemo/AccelerateDemo.vue +0 -85
  313. package/ThrowMoveDemo/App.vue +0 -104
  314. package/ThrowMoveDemo/LRParabolicDemo.vue +0 -101
  315. package/ThrowMoveDemo/TargetDemo.vue +0 -87
  316. package/ThrowMoveDemo/UDParabolicDemo.vue +0 -92
  317. /package/{AnimPicture/assets → assets}/animated_webp.webp +0 -0
  318. /package/{AnimPicture/assets → assets}/ball_3.webp +0 -0
  319. /package/{AnimPicture/assets → assets}/girl_run.gif +0 -0
  320. /package/{AnimPicture/assets → assets}/quan.webp +0 -0
@@ -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
+ let 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;
@@ -6,7 +6,7 @@
6
6
  onKeyDown,
7
7
  }"
8
8
  >
9
- <Genie
9
+ <GenieSlot
10
10
  ref="cGenieRef"
11
11
  :width="width"
12
12
  :height="height"
@@ -16,7 +16,7 @@
16
16
  :position="position"
17
17
  :time="1"
18
18
  :onAnimEnd="onAnimEnd"
19
- :initShow="true"
19
+ :initShow="false"
20
20
  >
21
21
  <img
22
22
  :src="`url(${imageUrl})`"
@@ -44,12 +44,12 @@
44
44
  >
45
45
  按OK键进场/出场
46
46
  </div>
47
- </Genie>
47
+ </GenieSlot>
48
48
  </jsv-focus-block>
49
49
  </template>
50
50
  <script setup>
51
- import Genie from "./geniePakcer/Genie.vue";
52
- import { shallowRef } from "vue";
51
+ import GenieSlot from "./geniePakcer/GenieSlot.vue";
52
+ import { shallowRef, onBeforeUnmount } from "vue";
53
53
 
54
54
  const cGenieRef = shallowRef();
55
55
  const position = { x: -80, y: 600 };
@@ -59,13 +59,27 @@ const imageUrl =
59
59
  "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/DemoForOperator/Genie/App/element_228542_icon_20230610184253.jpg";
60
60
 
61
61
  let imgLoaded = false;
62
+ let unmounted = false;
63
+
64
+ onBeforeUnmount(()=>{
65
+ unmounted = true;
66
+ })
67
+
62
68
  function onImgLoaded() {
63
- imgLoaded = true;
69
+ // 进行setTimeout(1), 为了规避已加载的图片onLoad太早破坏了先绘制再截图的时序
70
+ setTimeout(()=>{
71
+ imgLoaded = true;
72
+ if (!unmounted) {
73
+ cGenieRef.value.switcher();
74
+ }
75
+ }, 1)
64
76
  }
77
+
65
78
  const onAnimEnd = () => {
66
79
  console.log("anim end");
67
80
  };
68
81
 
82
+
69
83
  function onKeyDown(ev) {
70
84
  if (ev.keyCode == 13) {
71
85
  if (imgLoaded) {
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <div :style="{ width: 1280, height: 720, backgroundColor: '#f5f57d' }"></div>
3
+ <jsv-focus-block
4
+ autoFocus
5
+ :onAction="{
6
+ onKeyDown,
7
+ }"
8
+ >
9
+ <GenieImage
10
+ ref="cGenieRef"
11
+ :width="width"
12
+ :height="height"
13
+ :left="128"
14
+ :top="72"
15
+ direction="horizontal"
16
+ :position="position"
17
+ :time="1"
18
+ :onAnimEnd="onAnimEnd"
19
+ :initShow="false"
20
+ :imageUrl="imageUrl"
21
+ >
22
+
23
+ </GenieImage>
24
+ </jsv-focus-block>
25
+ </template>
26
+ <script setup>
27
+ import GenieImage from "./geniePakcer/GenieImage.vue";
28
+ import { shallowRef, onBeforeUnmount, onMounted } from "vue";
29
+
30
+ const cGenieRef = shallowRef();
31
+ const position = { x: -80, y: 600 };
32
+ const width = 1024;
33
+ const height = 576;
34
+ const imageUrl =
35
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/DemoForOperator/Genie/App/element_228542_icon_20230610184253.jpg";
36
+
37
+ let imgLoaded = false;
38
+ let unmounted = false;
39
+
40
+ onBeforeUnmount(()=>{
41
+ unmounted = true;
42
+ })
43
+
44
+ const onAnimEnd = () => {
45
+ console.log("anim end");
46
+ };
47
+
48
+ function onKeyDown(ev) {
49
+ if (ev.keyCode == 13) {
50
+ cGenieRef.value.switcher();
51
+ return true;
52
+ }
53
+ return false;
54
+ }
55
+
56
+ onMounted(()=>{
57
+ cGenieRef.value.switcher();
58
+ })
59
+
60
+ </script>
61
+