@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,6 +1,6 @@
1
1
  <script setup>
2
- import { computed, shallowRef, onActivated, onDeactivated } from "vue";
3
- import { jJsvRuntimeBridge, EdgeDirection, useFocusHub } from "jsview";
2
+ import { computed, shallowRef, onActivated, onDeactivated, inject, watchEffect } from "vue";
3
+ import { jJsvRuntimeBridge, EdgeDirection, useFocusHub, JsvTextureStoreApi } from "jsview";
4
4
  import { useRouter } from "vue-router";
5
5
  import TabFrame from "../components/TabFrame.vue";
6
6
  import BodyFrame from "../components/BodyFrame.vue";
@@ -146,6 +146,7 @@ let onDialogAction = (msg) => {
146
146
  // keep-alive后 router 返回本页面时要激活一下focus
147
147
  let focusNameOfDeactive = null;
148
148
  onActivated(() => {
149
+ console.log("Homepage onActivated");
149
150
  if (focusNameOfDeactive) {
150
151
  focusHub.setFocus(focusNameOfDeactive);
151
152
  focusNameOfDeactive = null;
@@ -153,12 +154,49 @@ onActivated(() => {
153
154
  });
154
155
 
155
156
  onDeactivated(() => {
157
+ console.log("Homepage onDeactivated");
158
+
159
+ // 清理'骨架图'截图资源
160
+ removeCaputureImage();
161
+
156
162
  focusNameOfDeactive = focusHub.getDeactivedPageFocus();
157
163
  });
164
+
165
+
166
+ // 追加骨架图截图测试项目
167
+ let rCaptureImage = inject("homeCaptureImage");
168
+ let vOriginCaptureImage = null;
169
+ watchEffect(() => {
170
+ // 监听'骨架图'截图资源变化,并清理旧资源
171
+ if (vOriginCaptureImage != rCaptureImage.value) {
172
+ if (vOriginCaptureImage != null) {
173
+ JsvTextureStoreApi.deleteTexture(vOriginCaptureImage);
174
+ }
175
+ vOriginCaptureImage = rCaptureImage.value;
176
+ console.log("capture_image new value", vOriginCaptureImage);
177
+ }
178
+ });
179
+ function removeCaputureImage() {
180
+ if (rCaptureImage.value != null) {
181
+ JsvTextureStoreApi.deleteTexture(rCaptureImage.value);
182
+ rCaptureImage.value = null;
183
+ vOriginCaptureImage = null;
184
+ }
185
+ }
186
+
158
187
  </script>
159
188
 
160
189
  <template>
161
190
  <div class="rootSize">
191
+ <!-- 测试keep-alive动画是否影响下个页面的项目 -->
192
+ <div :style="{
193
+ left: 10,
194
+ top: 600,
195
+ width: 100,
196
+ height: 100,
197
+ backgroundColor: 'rgba(128, 128, 0, 1)',
198
+ animation: 'AnimRotate 5s linear infinite'}"/>
199
+
162
200
  <div class="address">
163
201
  {{ address }}
164
202
  </div>
@@ -168,6 +206,7 @@ onDeactivated(() => {
168
206
  }}
169
207
  </div>
170
208
 
209
+
171
210
  <jsv-focus-block
172
211
  autoFocus
173
212
  :onAction="{
@@ -199,6 +238,13 @@ onDeactivated(() => {
199
238
  />
200
239
  </div>
201
240
 
241
+ <div v-if="rCaptureImage" :style="{
242
+ left: 1280 - 320 - 10,
243
+ top: 720 - 180 - 10,
244
+ width: 320,
245
+ height: 180,
246
+ backgroundImage: `url(jsvtexturestore://${rCaptureImage})`}"/>
247
+
202
248
  <Dialog
203
249
  v-show="showExitDialog"
204
250
  :name="name + '/exitDialog'"
@@ -231,4 +277,16 @@ onDeactivated(() => {
231
277
  font-weight: bold;
232
278
  text-align: right;
233
279
  }
280
+
281
+ @keyframes AnimRotate {
282
+ from {
283
+ transform: rotate3d(0, 0, 1, -360deg);
284
+ transform-origin: center center;
285
+ }
286
+ to {
287
+ transform: rotate3d(0, 0, 1, 0);
288
+ transform-origin: center center;
289
+ }
290
+ }
291
+
234
292
  </style>
@@ -0,0 +1,50 @@
1
+
2
+
3
+ <script setup>
4
+ import { watch, watchEffect } from "vue";
5
+
6
+ const props = defineProps({
7
+ aValue: {
8
+ type: Number,
9
+ required: false
10
+ },
11
+ bValue: {
12
+ type: Number,
13
+ required: false
14
+ },
15
+ cValue: {
16
+ type: Number,
17
+ required: false
18
+ }
19
+ });
20
+
21
+ watch(() => props.aValue, (newVal, oldVal) => {
22
+ console.log('WatchTest aValue changed:', oldVal, '->', newVal);
23
+ });
24
+
25
+ watch(() => props.bValue, (newVal, oldVal) => {
26
+ console.log('WatchTest bValue changed:', oldVal, '->', newVal);
27
+ });
28
+
29
+ watch(() => props.cValue, (newVal, oldVal) => {
30
+ console.log('WatchTest cValue changed:', oldVal, '->', newVal);
31
+ });
32
+
33
+ watch(() => [props.aValue, props.cValue], (newVal, oldVal) => {
34
+ console.log('WatchTest aValue and cValue changed:', oldVal, '->', newVal);
35
+ });
36
+
37
+ watchEffect(() => {
38
+ console.log('WatchTest watchEffect: aValue=', props.aValue, ', bValue=', props.bValue, ', cValue=', props.cValue);
39
+ });
40
+
41
+ watchEffect(() => {
42
+ console.log('WatchTest watchEffect(A): aValue=', props.aValue);
43
+ });
44
+
45
+
46
+ </script>
47
+
48
+ <template>
49
+ <div></div>
50
+ </template>
@@ -0,0 +1,133 @@
1
+ <template>
2
+ <jsv-focus-block autoFocus :onKeyDown="processKeyDown">
3
+ <!--
4
+ 这是 JsvDomRenderer 的示例容器。
5
+ - 外层 div 提供可视窗口尺寸(width/height)和裁剪能力(overflow: hidden)。
6
+ - JsvDomRenderer 只负责渲染 html 内容本身。
7
+ -->
8
+ <div style="width: 800; height: 500; overflow: hidden; background-color: #00FF00;">
9
+
10
+ <!--
11
+ JsvDomRenderer 用法(核心三项)
12
+ 1) :html
13
+ - 当前要渲染的 html 字符串(这里用 demoHtml 计算值)。
14
+ 2) :config
15
+ - 当前仅使用 latexEnabled 来控制是否启用 latex 渲染。
16
+ 3) :style
17
+ - 传入渲染样式(宽度、字体、颜色、top 偏移等)。
18
+ - 本示例通过 style.top + 上下键实现“内容上下浏览”。
19
+ -->
20
+ <JsvDomRenderer
21
+ :html="demoHtml"
22
+ :config="{
23
+ latexEnabled: true,
24
+ }"
25
+ :style="rendererStyle"
26
+ />
27
+ </div>
28
+ <div style="position: absolute; left: 10; top: 600; color: #ff0000; font-size: 25; background-color: #ffffff;width: 400;height: 30;">
29
+ 上下键浏览,左右键切换内容
30
+ </div>
31
+
32
+ </jsv-focus-block>
33
+ </template>
34
+
35
+ <script setup>
36
+ /*
37
+ 本文件展示如何把 JsvDomRenderer 用在“多段 html 切换 + 键盘浏览”场景。
38
+ - 左右键:切换 demoHtmlList 中的 html
39
+ - 上下键:修改 rendererStyle.top,浏览超出可视窗口的内容
40
+ */
41
+ import { computed, onMounted, shallowRef } from "vue";
42
+ import {
43
+ jJsvRuntimeBridge,
44
+ globalLoadJsvLatexPlugin,
45
+ JsvDomRenderer
46
+ } from "jsview";
47
+ // import JsvDomRenderer from "./components/JsvDomRenderer";
48
+
49
+ // 当 latexEnabled=true 时必须加载 JsvLatex 插件。
50
+ globalLoadJsvLatexPlugin((status) => {
51
+ console.log("load JsvLatex plugin status", status);
52
+ });
53
+
54
+ const processKeyDown = (ev) => {
55
+
56
+ if (ev.keyCode === 37) {
57
+ return switchHtmlByKey(-1);
58
+ }
59
+
60
+ if (ev.keyCode === 39) {
61
+ return switchHtmlByKey(1);
62
+ }
63
+
64
+ if (ev.keyCode === 38) {
65
+ return moveTopByKey(topStep);
66
+ }
67
+
68
+ if (ev.keyCode === 40) {
69
+ return moveTopByKey(-topStep);
70
+ }
71
+ };
72
+
73
+ const contentWidth = 800;
74
+ const topStep = 80;
75
+ const topOffset = shallowRef(0);
76
+ // JsvDomRenderer 的 style 推荐由 computed 统一生成,
77
+ // 这样可以直接通过修改 topOffset 响应式地驱动内容位移。
78
+ const rendererStyle = computed(() => ({
79
+ top: topOffset.value,
80
+ width: contentWidth,
81
+ backgroundColor: "#FFFFFF",
82
+ fontSize: 18,
83
+ color: "#000000",
84
+ }));
85
+
86
+ function switchHtmlByKey(delta) {
87
+ const nextIndex = currentHtmlIndex.value + delta;
88
+ if (nextIndex < 0 || nextIndex >= demoHtmlList.length) {
89
+ return false;
90
+ }
91
+ currentHtmlIndex.value = nextIndex;
92
+ // 切换 html 时重置 top,避免沿用上一页浏览位置。
93
+ topOffset.value = 0;
94
+ return true;
95
+ }
96
+
97
+ function moveTopByKey(delta) {
98
+ topOffset.value += delta;
99
+ return true;
100
+ }
101
+
102
+ const demoHtmlList = [
103
+ "如图,抛物线y=-x<sup>2</sup>+bx+c交x轴负半轴于点A,交X轴正半轴于点B,交y轴&nbsp;正半轴于点C,直线BC的解析式为y=kx+3(k≠0&nbsp;),∠ABC=45°<br>(1)求b、c的值;<br>(2)点P在第一象限的抛物线上,过点P分别作x轴、y轴的平行线,交直线BC于点M、N,设点P的横坐标为t,线段MN的长为d,求d与t之间的函数关系式(不要求写出自变量t的取值范围);<br>(3)在(2)的条件下,点E为抛物线的顶点,连接EC、EP、AP,AP交y轴于点D,连接DM,若∠DMB=90°,求四边形CMPE的面积.<br>< img alt=\"菁优网\" src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3D7F93C6EFC6BC8CCC7C520274D104AD08%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3AowpjAxGUXPJmIf_6sek8NTWY6Zg%3D\" style=\"vertical-align:middle\">",
104
+ "解:(1)在y=kx+3中,令x=0,则y=3,即C的坐标是(0,3),< img alt=\"菁优网\" src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3D90F15D30F01E7A515B9558105A91F99B%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3A6enhzFncInPVf4gKPTomWBFwHVw%3D\" style=\"vertical-align:middle;FLOAT:right;\"><br>∵直角△OBC中,∠ABC=45°,<br>∴OB=OC=3,即B的坐标是(3,0).<br>根据题意得:$\\left\\{\\begin{array}{l}{c=3}\\\\{-9+3b+c=0}\\end{array}\\right.$,<br>解得:$\\left\\{\\begin{array}{l}{c=3}\\\\{b=2}\\end{array}\\right.$;<br>(2)二次函数的解析式是y=-x<sup>2</sup>+2x+3,<br>设BC的解析式是y=mx+n,<br>则$\\left\\{\\begin{array}{l}{n=3}\\\\{3m+n=0}\\end{array}\\right.$,<br>解得$\\left\\{\\begin{array}{l}{m=-1}\\\\{n=3}\\end{array}\\right.$,<br>则直线BC的解析式是y=-x+3,△OBC是等腰直角三角形.<br>把x=t代入y=-x<sup>2</sup>+2x+3得y=-t<sup>2</sup>+2t+3,即P的纵坐标是-t<sup>2</sup>+2t+3,<br>把x=t代入y=-x+3,得y=-t+3,即Q的纵坐标是-t+3.<br>则PQ=(-t<sup>2</sup>+2t+3)-(-t+3)=-t<sup>2</sup>+3t,<br>则d=$\\sqrt{2}$PQ,即d=-$\\sqrt{2}$t<sup>2</sup>+3$\\sqrt{2}$t;<br>(3)延长PM交y轴于点H,延长PN交x轴于点K.<br>A的坐标是(-1,0),P的坐标是(t,-t<sup>2</sup>+2t+3),<br>∵在直角△PAK中,tan∠PAK=$\\frac{-{t}^{2}+2t+3}{t+1}$=3-t,<br>在直角△AOD中,∠DAO=$\\frac{OD}{OA}$=$\\frac{OD}{1}$,<br>∴3-t=$\\frac{OD}{1}$,< img alt=\"菁优网\" src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3D90F15D30F01E7A515B9558105A91F99B%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3A6enhzFncInPVf4gKPTomWBFwHVw%3D\" style=\"vertical-align:middle;FLOAT:right;\"><br>∴OD=3-t,<br>∴CD=3-(3-t)=t.<br>∵△CMD是等腰直角三角形,<br>∴MH=$\\frac{1}{2}$CD=$\\frac{1}{2}$t.<br>∵PH=MH+PM,<br>∴t=$\\frac{1}{2}$t+(-t<sup>2</sup>+3t).<br>∴t=$\\frac{5}{2}$或0(舍去).<br>∴PM=-($\\frac{5}{2}$)2+3×$\\frac{5}{2}$=$\\frac{5}{4}$,<br>PM=$\\frac{5}{4}$,CM=$\\frac{5\\sqrt{2}}{4}$,PK=$\\frac{7}{4}$.<br>∵二次函数的解析式是y=-x<sup>2</sup>+2x+3的顶点E的坐标是(1,4).<br>∴点E到PM的距离是4-$\\frac{7}{4}$=$\\frac{9}{4}$,<br>过E作EQ⊥y轴于点Q,连接EM.<br>∵EQ=QC=1,<br>∴△EQC和△HMC都是等腰直角三角形,<br>∴EC=$\\sqrt{2}$,∠ECM=90°,<br>∴S<sub>四边形CMPE</sub>=S<sub>△ECM</sub>+S<sub>△EMP</sub>=$\\frac{1}{2}$×$\\sqrt{2}$×$\\frac{5\\sqrt{2}}{4}$+$\\frac{1}{2}$×$\\frac{5}{4}$×$\\frac{9}{4}$=$\\frac{85}{32}$.",
105
+ // "(1)在y=kx+3中,令x=0,即可求得C的纵坐标,然后根据△OBC是等腰直角三角形求得B的坐标,利用待定系数法求得b和c的值;<br>(2)首先求得直线BC的解析式,则可求得P和N的纵坐标,则PN的长即可求得,然后根据△PMN是等腰直角三角形即可表示出MN的长;<br>(3)延长PM交y轴于点H,延长PN交x轴于点K,过E作EQ⊥y轴于点Q,连接EM,在直角△OAD和直角△KAP中,利用三角函数即可列方程求得t的值,再根据S<sub>1</sub>=S<sub>2</sub>+S<sub>3</sub>求解.",
106
+ "如图,直线y=kx+k交x轴,y轴分别于A,C,直线BC过点C交x轴于B,OC=3OA,∠CBA=45°.<br>(1)求直线BC的解析式;<br>(2)动点P从A出发沿射线AB匀速运动,速度为2个单位/秒,连接CP,设△PBC的面积为S,点P的运动时间为t秒,求S与t之间的函数关系式,直接写出t的取值范围;<br>(3)在(2)的条件下,当点P在AB的延长线上运动时,过点O作OD⊥PC于D,交BC于点E,连接AE,当∠EAB=∠CPA时,在坐标轴上有点K,且KC=KP,求点K的坐标.<br>< img alt=\"菁优网\" src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3D423CB10AB06D89B306490DE594506C90%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3ASxRpkN-J-B7W6bmh4lvAZbSyPfQ%3D\" style=\"vertical-align:middle\">",
107
+ "解:(1)在y=kx+k中,令y=0,则x=-1,即A的坐标是(-1,0).<br>∵OC=3OA,<br>∴OC=3,即C的坐标是(0,3).<br>∵∠CBA=45°,<br>∴∠OCB=∠CBA=45°,<br>∴OB=OC=3,则B的坐标是(3,0).<br>设BC的解析式是y=kx+b,则$\\left\\{\\begin{array}{l}{3k+b=0}\\\\{b=3}\\end{array}\\right.$,<br>解得:$\\left\\{\\begin{array}{l}{k=-1}\\\\{b=3}\\end{array}\\right.$,<br>则BC的解析式是y=-x+3;<br/>(2)当0<t≤2时,P在线段AB上,则BP=4-2t,<br>则S=$\\frac{1}{2}$(4-2t)×3=-3t+6;<br>当t>2时,OP=2t-4,则S=$\\frac{1}{2}$×3(2t-4),即S=3t-6;<br/>(3)作EH⊥OC于H.EG⊥OB于G.<br/>∵OD⊥PC,<br>∴∠ODP=90°,<br>∴∠DOP+∠OPD=90°,<br>∵∠COD+∠DOP=90°,<br>∴∠COD=∠OPD,<br>∵∠EAB=∠CPO,<br>∴∠EAB=∠COE,<br>∵∠ABE=∠OCE=45°,<br>∴△AEB∽△OEC,<br>∴$\\frac{EG}{EH}$=$\\frac{AB}{OC}$=$\\frac{4}{3}$,<br>∵四边形EHOG是矩形,< img alt=\"菁优网\" src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3D19E32FD814116769FB0AAD3BC9E18C2A%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3ASY873G8wX3_pGudgcTSLNWOONcc%3D\" style=\"vertical-align:middle\"><br>∴OH=EH<br>∴tan∠COE=$\\frac{HE}{OH}$=$\\frac{3}{4}$<br>∴tan∠CPO=$\\frac{OC}{OP}$=$\\frac{3}{4}$,<br>∵OC=3,<br>∴OP=4,<br>当点K在x轴上时,设K′C=K′P=m,<br>在Rt△OCK′中,则有m<sup>2</sup>=3<sup>2</sup>+(4-m)<sup>2</sup>,解得m=$\\frac{25}{8}$,<br>∴OK′=4-$\\frac{25}{8}$=$\\frac{7}{8}$,此时K′($\\frac{7}{8}$,0).<br>当点K在BC上时,点K在PC的垂直平分线上,此时K(0,-$\\frac{7}{6}$),<br>综上所述,满足条件的点K的坐标为($\\frac{7}{8}$,0)或(0,-$\\frac{7}{6}$).",
108
+ "(1)令y=0,即可求得A的坐标,根据OC=3OA即可求得C的坐标,再根据∠CBA=45°,即△BOC的等腰直角三角形,则B的坐标即可求得,然后利用待定系数法求得BC的解析式;<br>(2)分成P在AB和在AB的延长线上两种情况进行讨论,利用三角形面积公式即可求解;<br>(3)作EH⊥OC于H.EG⊥OB于G.利用相似三角形的性质,求出tan∠CPO的值,再求出OP的长即可解决问题.",
109
+ "< img alt=\"菁优网\" src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3D3DACB8A58DAF373498B331632AB75264%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3AA8AdeuJRuo1W_WM76eDqaKsfrf4%3D\" style=\"vertical-align:middle;FLOAT:right\">如图,抛物线y=-x<sup>2</sup>+bx+c交x轴于点A,B,交y轴于点C,直线BC的解析式为y=kx+3,∠ABC=45°.<br>(1)求抛物线的解析式;<br>(2)点P在第一象限的抛物线上,过点P分别作x轴、y轴的平行线,交直线BC于点M,N,当线段MN的长度最大时,求点P的坐标.",
110
+ "解:(1)∵当x=0时,y=kx+3=3,<br>∴C(0,3),<br>∴OC=3,<br>∵∠ABC=45°,∠BOC=90°,<br>∴∠OCB=45°,<br>∴∠ABC=∠OCB,<br>∴OB=OC=3,<br>∴B(3,0),<br>将B点和C点代入抛物线y=-x<sup>2</sup>+bx+c得:$\\left\\{\\begin{array}{l}{-9+3b+c=0}\\\\{c=3}\\end{array}\\right.$,<br>解得:$\\left\\{\\begin{array}{l}{b=2}\\\\{c=3}\\end{array}\\right.$,<br>∴y=-x<sup>2</sup>+2x+3.<br>(2)∵PM,PN分别平行于x轴、y轴,<br>∴∠PMN=∠PNM=45°,<br>∴∠MPN=90°,<br>∴△PMN为等腰直角三角形<br>∴MN=$\\sqrt{2}$PN.<br>设x<sub>P</sub>=x<sub>N</sub>=m,<br>则${y}_{P}={-m}^{2}$+2m+3,<br>∵B(3,0),<br>∴3k+3=0,<br>∴k=-1,<br>∴y=-x+3,<br>∴y<sub>N</sub>=-m+3,<br>∴PN=-m<sup>2</sup>+2m+3-(-m+3)<br>=-m<sup>2</sup>+3m,<br>∴MN=$\\sqrt{2}PN$=$\\sqrt{2}$(-m<sup>2</sup>+3m)<br>=-${\\sqrt{2}(m-\\frac{3}{2})}^{2}+\\frac{9\\sqrt{2}}{4}$,<br>∴当m=$\\frac{3}{2}$时,MN最大,最大值=$\\frac{9\\sqrt{2}}{4}$,<br>${∴y}_{P}={-(\\frac{3}{2})}^{2}+2×\\frac{3}{2}+3=\\frac{15}{4}$,<br>∴P$(\\frac{3}{2},\\frac{15}{4})$.",
111
+ "(1)先求出点C(0,3),由45°得到:OC=OB=3,将B和C两点坐标代入二次函数解析式即可求出答案;<br>(2)先证明△MNP是等腰直角三角形,MN=$\\sqrt{2}$PN.设P的横坐标为m,根据两个函数的解析式用m的代数式表示出PN和MN,最后用配方法即可求出m=$\\frac{3}{2}$时,NM最大,从而得到点P的坐标.",
112
+ "连线题。<br><table class=\"composition2\">\r\n <tbody>\r\n <tr>\r\n <td width=\"185\">(1)play&nbsp;volleyball</td>\r\n <td>a.打篮球</td>\r\n </tr>\r\n <tr>\r\n <td>(2)play&nbsp;table&nbsp;tennis</td>\r\n <td>b.踢足球</td>\r\n </tr>\r\n <tr>\r\n <td>(3)play&nbsp;badminton</td>\r\n <td>c.打排球</td>\r\n </tr>\r\n <tr>\r\n <td>(4)play&nbsp;basketball</td>\r\n <td>d.打羽毛球</td>\r\n </tr>\r\n <tr>\r\n <td>(5)play&nbsp;football</td>\r\n <td>e.打乒乓球</td>\r\n </tr>\r\n </tbody>\r\n</table>",
113
+ "<p>【答案】<br>< img src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3DE93D72A347B373BBD056E027C7B94CD6%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3Au9NyyITEWQCVK2DHDtzSNjHztvM%3D\">< img src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3D6005C4262C79C3FF19ED4F1686D3385F%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3ADWbIKgUlAjqgWWExr8eYipzbJhY%3D\">< img src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3D0C4D0FAF4FD4B308B427433C3813319E%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3A7Q74vNjbitg2j2X2r2VzoAd41j8%3D\">< img src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3D414330DA1C7D5A3FFB409B19F804C7AA%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3AtNdpWi0x1KXmnKyfO4bhuD07esA%3D\">< img src=\"https://api-learning.coocaa.com/image/proxy?url=http%3A%2F%2Fsouti-ims.sm.cn%2Fims%3Fkey%3D6FFC30AF2B96F882572FEC254F7F3693%26at%3Dsouti%26kt%3Dmd5%26tv%3D0_0%26sign%3Dyx%3ADd9Ym4dwmno37OxystU087q7GVw%3D\">play football&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打羽毛球<br>play table tennis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打排球<br>play volleyball&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;踢足球&nbsp;&nbsp;&nbsp;<br>play badminton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打篮球<br>play basketball&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打乒乓球</p >. <p></p > <p></p >",
114
+ "<p>【题文】连一连<br>play football打羽毛球<br>play table tennis打排球<br>play volleyball踢足球<br>play badminton打篮球<br>play basketball打乒乓球</p >. <p></p > <p></p >",
115
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"> <p>当用毛皮摩擦过的橡胶棒靠近一个挂在绝缘细线上的小通草球时发现通草也向橡胶棒靠近,由此可判断( )</p ><ul class=\"topiclist\"> <li><input type=\"radio\" class=\"input_radio\" name=\"2519948\" index=\"A\" id=\"QR2519948_1\">A.通草球一定带正电</li> <li><input type=\"radio\" class=\"input_radio\" name=\"2519948\" index=\"B\" id=\"QR2519948_2\">B.通草球一定带负电</li> <li><input type=\"radio\" class=\"input_radio\" name=\"2519948\" index=\"C\" id=\"QR2519948_3\">C.通草球一定不带电</li> <li><input type=\"radio\" class=\"input_radio\" name=\"2519948\" index=\"D\" id=\"QR2519948_4\">D.以上判断都不对</li></ul>",
116
+ ];
117
+ const currentHtmlIndex = shallowRef(0);
118
+ // JsvDomRenderer 的 :html 绑定值,来自“当前索引 -> html 列表”的映射。
119
+ const demoHtml = computed(() => demoHtmlList[currentHtmlIndex.value] ?? "");
120
+
121
+
122
+ onMounted(() => {
123
+ /* apk到收到此调用后才会结束启动过程,去掉启动图(否则会显示加载超时的界面) */
124
+ jJsvRuntimeBridge.notifyPageLoaded();
125
+ });
126
+ </script>
127
+
128
+ <style scoped>
129
+ .logo-size {
130
+ width: 200;
131
+ height: 200;
132
+ }
133
+ </style>
@@ -8,27 +8,56 @@ const item_url = DemoResourceBase
8
8
  </script>
9
9
 
10
10
  <template>
11
- <div
12
- className="blockStyle"
13
- :style="{
14
- backgroundColor: '#0000FF',
15
- animation: 'opacityDemo_CompositeNoOpacity 3s infinite',
16
- }"
17
- />
18
- <img
19
- className="blockStyle"
20
- :style="{
21
- objectFit: 'contain',
22
- animation: 'opacityDemo_CompositeOpacity 3s infinite',
23
- }"
24
- :src="item_url"
25
- />
11
+ <div :style="{
12
+ top:100,
13
+ left:0,
14
+ width: 600,
15
+ height: 80,
16
+ overflow: 'hidden',
17
+ }">
18
+ <div :style="{
19
+ // 坐标补偿
20
+ top:-50,
21
+ }">
22
+ <div
23
+ className="blockStyle"
24
+ :style="{
25
+ backgroundColor: '#0000FF',
26
+ animation: 'opacityDemo_CompositeNoOpacity 3s infinite',
27
+ }"
28
+ />
29
+ <img
30
+ className="blockStyle"
31
+ :style="{
32
+ objectFit: 'contain',
33
+ animation: 'opacityDemo_CompositeOpacity 3s infinite',
34
+ }"
35
+ :src="item_url"
36
+ />
37
+
38
+ <div
39
+ className="blockStyle"
40
+ :style="{
41
+ left: 200,
42
+ backgroundColor: '#0000FF',
43
+ animation: 'opacityDemo_Ortho_CompositeNoOpacity 3s infinite',
44
+ }"
45
+ />
46
+ <img
47
+ className="blockStyle"
48
+ :style="{
49
+ left: 200,
50
+ objectFit: 'contain',
51
+ animation: 'opacityDemo_Ortho_CompositeOpacity 3s infinite',
52
+ }"
53
+ :src="item_url"
54
+ />
55
+ </div>
56
+ </div>
26
57
  </template>
27
58
 
28
59
  <style scoped>
29
60
  .blockStyle {
30
- top: 50;
31
- left: 50;
32
61
  width: 150;
33
62
  height: 150;
34
63
  }
@@ -59,4 +88,21 @@ const item_url = DemoResourceBase
59
88
  to {
60
89
  }
61
90
  }
91
+
92
+ @keyframes opacityDemo_Ortho_CompositeOpacity {
93
+ from {
94
+ transform: translate3d(50%, 30, 0) scale3d(1.5, 1.5, 1);
95
+ opacity: 0.1;
96
+ }
97
+ to {
98
+ }
99
+ }
100
+
101
+ @keyframes opacityDemo_Ortho_CompositeNoOpacity {
102
+ from {
103
+ transform: translate3d(50%, 30, 0) scale3d(1.5, 1.5, 1);
104
+ }
105
+ to {
106
+ }
107
+ }
62
108
  </style>
@@ -89,14 +89,14 @@ onMounted(() => {
89
89
 
90
90
  <jsv-filter-view
91
91
  :top="400"
92
- :width="402"
93
- :height="402"
92
+ :width="602"
93
+ :height="602"
94
94
  ref="filter2"
95
95
  :filterType="filterType.type"
96
96
  >
97
97
  <div
98
98
  :style="{
99
- width: 300,
99
+ width: 600,
100
100
  height: 300,
101
101
  backgroundImage: `url(${webpSample})`,
102
102
  }"
@@ -0,0 +1,4 @@
1
+ 读取 @shijiu/jsview-vue-samples/FlexCellDemo , JsvFlexDiv 是需要用flex属性的div的替代品(因为JsView的div或者img标签不支持flex相关的css属性)。将div 用到flex的场景,转为按照 @shijiu/jsview-vue-samples/FlexCellDemo 样例的写法归纳总结到 jsview-best-practices 这个skills中
2
+
3
+ 再追加一条限制: JsvFlexDiv 只支持对齐直接子元素进行flex排版, 并不支持递归到所有的子, 如果需要多层flex排版, 要想 @shijiu/jsview-vue-samples/FlexCellDemo 里面那样写成 JsvFlexDiv 嵌套
4
+
@@ -62,20 +62,30 @@ const _onSizeTest1_2 = (width, height) => {
62
62
  <!-- 测试主轴尺寸未给的场景下的撑大处理, 复用父节点的width -->
63
63
  <jsv-flex-div
64
64
  :key="rRefreshId"
65
- :style="{ flexWrap: 'wrap' }"
65
+ :style="{ flexWrap: 'wrap', backgroundColor: 'rgba(0,128,200,0.5)' }"
66
66
  :onSized="_onSizeTest1_2"
67
67
  >
68
+ <!-- 开头一个空节点,测试width,height都不设置的div -->
69
+ <div :style="{backgroundColor: '#FFFFFF' }" />
70
+
71
+ <!-- 变形节点, 内含0x0和undefined的场景 -->
72
+ <div :style="{ width: rMyWidth, height: rMyHeight, backgroundColor: '#0000FF' }" />
68
73
  <img :src="image5" :style="{ width: rMyWidth, height: rMyHeight }" />
74
+
69
75
  <!-- <img :src="image5" :style="{ height: 0 }" /> -->
70
76
  <img :src="image2" :style="{ height: 45 }" />
71
77
  <div
72
78
  id="DivAnchor"
73
79
  :style="{ height: 60, width: 60, backgroundColor: '#FF0000' }"
74
80
  />
81
+
82
+ <!-- 中插一个空节点,测试width,height都不设置的div -->
83
+ <div :style="{backgroundColor: '#FFFFFF' }" />
84
+
75
85
  <img :src="image1" :style="{ height: 45 }" />
76
86
  <img :src="image1" :style="{ height: 45 }" />
77
87
  </jsv-flex-div>
78
- <img :src="image3" :style="{ height: 50 }" />
88
+ <div :style="{ backgroundImage:`url(${image3})` }" />
79
89
  <!-- <img :src="image4" :style="{ height: 50 }" /> -->
80
90
  </jsv-flex-div>
81
91
  </div>
@@ -1,5 +1,5 @@
1
1
  <script setup>
2
- import { JsvFlexDiv } from "jsview";
2
+ import { JsvFlexDiv, JsvQrcode } from "jsview";
3
3
  import image1 from "./images/1.png";
4
4
  import image2 from "./images/2.png";
5
5
  import image3 from "./images/3.png";
@@ -65,10 +65,19 @@ import image4 from "./images/4.jpg";
65
65
  flexDirection: 'column',
66
66
  alignSelf: 'stretch',
67
67
  alignItems: 'flex-start',
68
+ backgroundColor: '#0000FF',
68
69
  }"
69
70
  >
70
71
  <img :src="image1" :style="{ height: 50 }" />
71
72
  <img :src="image1" :style="{ height: 50 }" />
73
+ <jsv-qrcode
74
+ value="https://jsview.shijiu.com"
75
+ :size="30"
76
+ :fgColor="'#000000'"
77
+ :bgColor="'#ffffff'"
78
+ :level="'M'"
79
+ sync="async"
80
+ />
72
81
  </jsv-flex-div>
73
82
 
74
83
  <!-- 测试内容内嵌有子view -->