@shijiu/jsview-vue-samples 2.3.151-test.0 → 3.0.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 (228) 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/DemoForOperator/Bounce/FreeMoveBuilder.js +1 -1
  27. package/DemoForOperator/Firework1/App.vue +12 -1
  28. package/DemoForOperator/Firework1/Fireworks.vue +18 -0
  29. package/DemoForOperator/FlipPage/FlipPage/FlipPage.vue +1 -0
  30. package/DemoForOperator/Focus/Alpha/Item.vue +1 -0
  31. package/DemoForOperator/Focus/Light/Item.vue +1 -0
  32. package/DemoForOperator/Focus/Normal/Item.vue +1 -0
  33. package/DemoForOperator/FrameShadow/FrameShadow.vue +1 -1
  34. package/DemoForOperator/Genie/App.vue +20 -6
  35. package/DemoForOperator/Genie/App2.vue +61 -0
  36. package/DemoForOperator/Genie/geniePakcer/GenieImage.vue +298 -0
  37. package/DemoForOperator/Genie/geniePakcer/GenieSlot.vue +292 -0
  38. package/DemoForOperator/Genie/geniePakcer/GenieTools.ts +463 -0
  39. package/DemoForOperator/Jigsaw/JigsawFull.vue +12 -7
  40. package/DemoForOperator/Jigsaw/JigsawSingle.vue +13 -7
  41. package/DemoForOperator/LongChatBox/App.vue +13 -13
  42. package/DemoForOperator/LongChatBox/Bubble.vue +78 -66
  43. package/DemoForOperator/LongChatBox/LongChat.vue +68 -36
  44. package/DemoForOperator/LongChatBox/testData.js +7 -44
  45. package/DemoForOperator/Sound/Bounce/FreeMoveBuilder.js +1 -1
  46. package/DemoForOperator/routeList.js +8 -2
  47. package/DemoHomepage/App.vue +74 -1
  48. package/DemoHomepage/components/BodyFrame.vue +1 -0
  49. package/DemoHomepage/components/TabFrame.vue +1 -1
  50. package/DemoHomepage/router.js +723 -160
  51. package/DemoHomepage/views/Homepage.vue +60 -2
  52. package/DemoHomepage/watchTest.vue +50 -0
  53. package/FilterDemo/AnimatePic.vue +63 -17
  54. package/FilterDemo/App.vue +3 -3
  55. package/FlexCellDemo/AI_skills_update.md +4 -0
  56. package/FlexCellDemo/TestFrame1.vue +12 -2
  57. package/FlexCellDemo/TestFrame2.vue +10 -1
  58. package/FlexCellDemo/TestFrame3.vue +114 -59
  59. package/FpsLimit/App.vue +102 -0
  60. package/FreeMoveChildAttract/App.vue +18 -8
  61. package/FreeMoveLink/App.vue +49 -20
  62. package/Hover/App.vue +144 -0
  63. package/HttpRequestSSE/SSEReader.js +200 -0
  64. package/ImpactStop/App.vue +2 -2
  65. package/Input/FullKeyboard.vue +3 -3
  66. package/Input/InputPanel.vue +63 -3
  67. package/JsvLine/App.vue +53 -38
  68. package/LatexDemo/App.vue +3 -1
  69. package/LatexFormula/App.vue +196 -0
  70. package/LongImage/App.vue +1 -1
  71. package/LongImage/LongImageScroll.vue +100 -47
  72. package/LongImage/Scroll.vue +28 -9
  73. package/LongText/LongTextScroll.vue +1 -0
  74. package/Markdown/App.vue +36 -0
  75. package/Markdown/Bubble.vue +109 -0
  76. package/Markdown/LongChat.vue +206 -0
  77. package/Markdown/Markdown/Markdown.vue +156 -0
  78. package/Markdown/Markdown/index.ts +1 -0
  79. package/Markdown/Markdown/marked/LICENSE.md +45 -0
  80. package/Markdown/Markdown/marked/index.ts +2 -0
  81. package/Markdown/Markdown/marked/marked.d.ts +756 -0
  82. package/Markdown/Markdown/marked/marked.js +71 -0
  83. package/Markdown/Markdown/parser.ts +1365 -0
  84. package/Markdown/data.js +581 -0
  85. package/MetroWidgetDemos/AI_skills_update.md +2 -0
  86. package/MetroWidgetDemos/ListExpand/ChildItem.vue +130 -0
  87. package/MetroWidgetDemos/ListExpand/ExpandItem.vue +375 -0
  88. package/MetroWidgetDemos/ListExpand/ExpandItem1.vue +403 -0
  89. package/MetroWidgetDemos/ListExpand/assets/arrow-down.png +0 -0
  90. package/MetroWidgetDemos/ListExpand/assets/up-arrow.png +0 -0
  91. package/MetroWidgetDemos/ListExpand/components/WidgetListHandler.vue +150 -0
  92. package/MetroWidgetDemos/ListExpand/index.vue +88 -0
  93. package/MetroWidgetDemos/ListExpand/list.js +2421 -0
  94. package/MetroWidgetDemos/RefreshDemo/App.vue +14 -1
  95. package/MetroWidgetDemos/RenderAccelerate/App.vue +142 -0
  96. package/MetroWidgetDemos/RenderAccelerate/AppPage.vue +78 -0
  97. package/MetroWidgetDemos/RenderAccelerate/AppTab.vue +62 -0
  98. package/MetroWidgetDemos/RenderAccelerate/ContentItem.vue +409 -0
  99. package/MetroWidgetDemos/RenderAccelerate/Item.vue +67 -0
  100. package/MetroWidgetDemos/RenderAccelerate/TabItem.vue +100 -0
  101. package/MetroWidgetDemos/RenderAccelerate/ViewSwiper.vue +215 -0
  102. package/MetroWidgetDemos/RenderAccelerate/WidgetItem.vue +107 -0
  103. package/MetroWidgetDemos/SkeletonDiagram/App.vue +35 -8
  104. package/MetroWidgetDemos/SkeletonDiagram/Item.vue +11 -2
  105. package/MetroWidgetDemos/SkeletonDiagram/assets/imageList.js +245 -0
  106. package/MetroWidgetDemos/SkeletonDiagram/data.js +3 -3
  107. package/MetroWidgetDemos/SpatialNav/App.vue +177 -0
  108. package/MetroWidgetDemos/SpatialNav/Buttons.vue +83 -0
  109. package/MetroWidgetDemos/SpatialNav/CustomFocus.vue +57 -0
  110. package/MetroWidgetDemos/{TripleWidget → SpatialNav}/Item.vue +1 -8
  111. package/MetroWidgetDemos/{TripleWidget/WidgetItem.vue → SpatialNav/SimpleFloor.vue} +14 -45
  112. package/MetroWidgetDemos/SpatialNav/StepMw.vue +113 -0
  113. package/MetroWidgetDemos/SpatialNav/TabContent/TabContent.vue +185 -0
  114. package/MetroWidgetDemos/SpatialNav/TripleSection/TripleSection.vue +69 -0
  115. package/MetroWidgetDemos/SpatialNav/TripleSection/WidgetItem.vue +100 -0
  116. package/MetroWidgetDemos/SpatialNav/TvSection/List.vue +75 -0
  117. package/MetroWidgetDemos/SpatialNav/TvSection/TvSection.vue +91 -0
  118. package/MetroWidgetDemos/basic2/App.vue +407 -0
  119. package/MetroWidgetDemos/basic2/Item.vue +68 -0
  120. package/MetroWidgetDemos/direction/App.vue +22 -0
  121. package/MetroWidgetDemos/gazeFocusDiff/App.vue +126 -0
  122. package/MetroWidgetDemos/gazeFocusDiff/Item.vue +87 -0
  123. package/MetroWidgetDemos/minimalUsage/App.vue +66 -0
  124. package/MetroWidgetDemos/minimalUsage/Item.vue +54 -0
  125. package/MetroWidgetDemos/ninePatchFocusPage/App.vue +22 -7
  126. package/MetroWidgetDemos/ninePatchFocusPage/Item.vue +7 -5
  127. package/MetroWidgetDemos/ninePatchFocusPage/focusConstants.js +2 -0
  128. package/MetroWidgetDemos/routeList.js +203 -12
  129. package/MetroWidgetDemos/slideSetting/App.vue +288 -99
  130. package/MetroWidgetDemos/zIndex/App.vue +117 -0
  131. package/MetroWidgetDemos/zIndex/Item.vue +61 -0
  132. package/NinePatchTester/App.vue +24 -31
  133. package/PreDecode/App.vue +140 -0
  134. package/ReactiveTest/App.vue +115 -0
  135. package/ReactiveTest/Item.vue +92 -0
  136. package/ReactiveTest/assets/imageList.js +245 -0
  137. package/ReactiveTest/component/TestSmartDiv.vue +50 -0
  138. package/ReactiveTest/component/TestSmartDivSrcList.vue +74 -0
  139. package/ReactiveTest/component/TestSmartImage.vue +46 -0
  140. package/ReactiveTest/component/TestSmartImageSrcList.vue +90 -0
  141. package/ReactiveTest/component/TestSmartImageStyle.vue +41 -0
  142. package/ReactiveTest/data.js +49 -0
  143. package/ScreenToBlob/App.vue +250 -0
  144. package/SecTorTest/App.vue +9 -3
  145. package/SpringFestival/SpringFestivalScene/FreeMoveBuilder.js +3 -3
  146. package/SyncDecode/App.vue +137 -0
  147. package/TextSizeLimit/App.vue +211 -0
  148. package/TransitPage/App.vue +2 -0
  149. package/assets/logo.png +0 -0
  150. package/package.json +5 -5
  151. package/DemoForOperator/Genie/geniePakcer/Genie.vue +0 -741
  152. package/DemoForOperator/LongChatBox/TextManager.ts +0 -147
  153. package/DemoForOperator/LongChatBox/VirtualList.vue +0 -298
  154. package/DemoForOperator/LongChatBox/utile.js +0 -331
  155. package/DivMetroPerformance/App.vue +0 -157
  156. package/DivMetroPerformance/Item.vue +0 -58
  157. package/DivMetroPerformance/assets/bg.jpg +0 -0
  158. package/DivMetroPerformance/assets/coupon_content.png +0 -0
  159. package/DivMetroPerformance/assets/coupon_left.png +0 -0
  160. package/DivMetroPerformance/assets/coupon_mid.png +0 -0
  161. package/DivMetroPerformance/assets/coupon_right.png +0 -0
  162. package/DivMetroPerformance/assets/focus_border.png +0 -0
  163. package/DivMetroPerformance/assets/holder_logo.png +0 -0
  164. package/DivMetroPerformance/assets/jrbm.png +0 -0
  165. package/DivMetroPerformance/assets/line_left.png +0 -0
  166. package/DivMetroPerformance/assets/line_mid.png +0 -0
  167. package/DivMetroPerformance/assets/line_right.png +0 -0
  168. package/DivMetroPerformance/assets/loading.png +0 -0
  169. package/DivMetroPerformance/assets/logo.png +0 -0
  170. package/DivMetroPerformance/assets/mcjx.png +0 -0
  171. package/DivMetroPerformance/assets/tao.png +0 -0
  172. package/DivMetroPerformance/assets/tmall.png +0 -0
  173. package/DivMetroPerformance/border.png +0 -0
  174. package/DivMetroPerformance/components/ContentItem.vue +0 -384
  175. package/DivMetroPerformance/components/MyTab.vue +0 -129
  176. package/DivMetroPerformance/data.js +0 -124
  177. package/DivMetroPerformance/utils/GridItem.vue +0 -28
  178. package/DivMetroPerformance/utils/GridPlate.vue +0 -85
  179. package/MediaDemo/App.vue +0 -127
  180. package/MediaDemo/assets/audio-poster.png +0 -0
  181. package/MediaDemo/components/Button.vue +0 -69
  182. package/MediaDemo/components/Controllor.vue +0 -286
  183. package/MediaDemo/components/StatusBar.vue +0 -100
  184. package/MediaDemo/components/frames/AudioFrame.vue +0 -39
  185. package/MediaDemo/components/frames/AudioPoster.vue +0 -48
  186. package/MediaDemo/components/frames/MediaFrame.vue +0 -153
  187. package/MediaDemo/components/frames/VideoFrame.vue +0 -39
  188. package/MetroWidgetDemos/TripleWidget/App.vue +0 -87
  189. package/MetroWidgetDemos/TripleWidget/SWidgetItem.vue +0 -99
  190. package/Parkour/App.vue +0 -13
  191. package/Parkour/Common/Context.js +0 -21
  192. package/Parkour/Common/MatchmanInfo.js +0 -62
  193. package/Parkour/Common/Random.js +0 -61
  194. package/Parkour/Common/Sound.js +0 -50
  195. package/Parkour/appConfig/HOW_TO_CONFIG.md +0 -20
  196. package/Parkour/appConfig/app.config.mjs +0 -5
  197. package/Parkour/appConfig/app_sign_private_key_sample.crt +0 -28
  198. package/Parkour/appConfig/app_sign_public_key_sample.pem +0 -9
  199. package/Parkour/appConfig/jsview.config.mjs +0 -39
  200. package/Parkour/assets/Bgimages/bg1.png +0 -0
  201. package/Parkour/assets/Bgimages/bg2.png +0 -0
  202. package/Parkour/assets/Bgimages/bg3.png +0 -0
  203. package/Parkour/assets/Bgimages/bg4.png +0 -0
  204. package/Parkour/assets/Bgimages/bg5.png +0 -0
  205. package/Parkour/assets/audio/jump.mp3 +0 -0
  206. package/Parkour/assets/audio/lose.mp3 +0 -0
  207. package/Parkour/assets/role_skin1/fail.json +0 -44
  208. package/Parkour/assets/role_skin1/fail.png +0 -0
  209. package/Parkour/assets/role_skin1/jump_down.json +0 -20
  210. package/Parkour/assets/role_skin1/jump_down.png +0 -0
  211. package/Parkour/assets/role_skin1/jump_up.json +0 -44
  212. package/Parkour/assets/role_skin1/jump_up.png +0 -0
  213. package/Parkour/assets/role_skin1/roll.json +0 -44
  214. package/Parkour/assets/role_skin1/roll.png +0 -0
  215. package/Parkour/assets/role_skin1/run.json +0 -52
  216. package/Parkour/assets/role_skin1/run.png +0 -0
  217. package/Parkour/components/Backdrop.vue +0 -61
  218. package/Parkour/components/GameSence.vue +0 -602
  219. package/Parkour/components/Matchman.vue +0 -85
  220. package/ThrowMoveDemo/AccelerateDemo.vue +0 -85
  221. package/ThrowMoveDemo/App.vue +0 -104
  222. package/ThrowMoveDemo/LRParabolicDemo.vue +0 -101
  223. package/ThrowMoveDemo/TargetDemo.vue +0 -87
  224. package/ThrowMoveDemo/UDParabolicDemo.vue +0 -92
  225. /package/{AnimPicture/assets → assets}/animated_webp.webp +0 -0
  226. /package/{AnimPicture/assets → assets}/ball_3.webp +0 -0
  227. /package/{AnimPicture/assets → assets}/girl_run.gif +0 -0
  228. /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>
@@ -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 -->
@@ -1,97 +1,152 @@
1
1
  <script setup>
2
+ import { onMounted, onBeforeUnmount, shallowRef } from "vue";
2
3
  import { JsvFlexDiv } from "jsview";
3
4
  import image1 from "./images/1.png";
4
5
  import image2 from "./images/2.png";
5
6
  import image3 from "./images/3.png";
6
7
  import image4 from "./images/4.jpg";
8
+
9
+ let vInvToken = null;
10
+ let showText = shallowRef(true);
11
+
12
+ onMounted(() => {
13
+ vInvToken = setInterval(() => {
14
+ showText.value = !showText.value;
15
+ }, 1000);
16
+ });
17
+
18
+ onBeforeUnmount(() => {
19
+ if (vInvToken > 0) {
20
+ clearInterval(vInvToken);
21
+ vInvToken = -1;
22
+ }
23
+ });
7
24
  </script>
8
25
 
9
26
  <template>
27
+ <div
28
+ :style="{
29
+ left: -50,
30
+ width: 350,
31
+ height: 400,
32
+ overflow: 'hidden'
33
+ }"
34
+ >
10
35
  <div
11
36
  :style="{
12
- left: -50,
13
- width: 350,
37
+ left: 50,
38
+ width: 300,
14
39
  height: 400,
15
- overflow: 'hidden',
40
+ backgroundColor: 'rgba(100,100,100,0.5)',
41
+ fontSize: 12,
42
+ color: '#000000',
43
+ textAlign: 'center',
44
+ lineHeight: 16
16
45
  }"
17
46
  >
18
- <div
47
+ <jsv-flex-div
19
48
  :style="{
20
- left: 50,
21
49
  width: 300,
22
50
  height: 400,
23
- backgroundColor: 'rgba(100,100,100,0.5)',
24
- fontSize: 12,
25
- color: '#000000',
26
- textAlign: 'center',
27
- lineHeight: 16,
51
+ flexDirection: 'column',
52
+ alignItems: 'flex-end',
53
+ justifyContent: 'center'
28
54
  }"
29
55
  >
30
- <jsv-flex-div
56
+ <!-- 文字绘制区域超过容器尺寸的内容的测试 -->
57
+ <div
31
58
  :style="{
32
- width: 300,
33
- height: 400,
34
- flexDirection: 'column',
35
- alignItems: 'flex-end',
36
- justifyContent: 'center',
59
+ width: 450,
60
+ backgroundColor: 'rgba(0, 50, 0, 0.5)'
37
61
  }"
38
62
  >
39
- <!-- 文字绘制区域超过容器尺寸的内容的测试 -->
40
- <div :style="{ width: 450, backgroundColor: 'rgba(0, 50, 0, 0.5)' }">
41
- {{
42
- "对于涉嫌借款或其他涉及财产的网络信息、账户密码、广告或推广等信息的,用户请谨慎对待并自行判断,基于前述原因您因此遭受的利润、商业信誉、资料损失或其他有形或无形损失的,我们不承担任何直接、间接、附带、特别、衍生性或惩罚性的赔偿责任。"
43
- }}
44
- </div>
63
+ {{
64
+ "对于涉嫌借款或其他涉及财产的网络信息、账户密码、广告或推广等信息的,用户请谨慎对待并自行判断,基于前述原因您因此遭受的利润、商业信誉、资料损失或其他有形或无形损失的,我们不承担任何直接、间接、附带、特别、衍生性或惩罚性的赔偿责任。"
65
+ }}
66
+ </div>
45
67
 
46
- <!-- 文字绘制区域未超过容器尺寸的内容的测试 -->
47
- <div :style="{ width: 250, backgroundColor: 'rgba(0, 70, 0, 0.5)' }">
48
- {{
49
- "对于涉嫌借款或其他涉及财产的网络信息、账户密码、广告或推广等信息的,用户请谨慎对待并自行判断,基于前述原因您因此遭受的利润、商业信誉、资料损失或其他有形或无形损失的,我们不承担任何直接、间接、附带、特别、衍生性或惩罚性的赔偿责任。"
50
- }}
51
- </div>
68
+ <!-- 文字绘制区域未超过容器尺寸的内容的测试 -->
69
+ <div
70
+ :style="{
71
+ width: 250,
72
+ backgroundColor: 'rgba(0, 70, 0, 0.5)'
73
+ }"
74
+ >
75
+ {{
76
+ "对于涉嫌借款或其他涉及财产的网络信息、账户密码、广告或推广等信息的,用户请谨慎对待并自行判断,基于前述原因您因此遭受的利润、商业信誉、资料损失或其他有形或无形损失的,我们不承担任何直接、间接、附带、特别、衍生性或惩罚性的赔偿责任。"
77
+ }}
78
+ </div>
52
79
 
53
- <!-- 超长折行文字测试点,文字字数大于3000字,最后一个字为'拾' -->
80
+ <!-- 超长折行文字测试点,文字字数大于3000字,最后一个字为'拾' -->
81
+ <div
82
+ :style="{
83
+ height: 16,
84
+ backgroundColor: 'rgba(0, 90, 0, 0.5)',
85
+ whiteSpace: 'nowrap'
86
+ }"
87
+ >
88
+ {{
89
+ "一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九拾"
90
+ }}
91
+ </div>
92
+ <!-- 短文字横向排布接续的测试 -->
93
+ <jsv-flex-div
94
+ :style="{
95
+ flexDirection: 'row',
96
+ alignItems: 'center',
97
+ backgroundColor: 'rgba(0, 110, 0, 0.5)',
98
+ alignSelf: 'center',
99
+ }"
100
+ >
101
+ <div :style="{ height: 16 }">
102
+ {{ "++一二三" }}
103
+ </div>
54
104
  <div
105
+ v-show="showText"
55
106
  :style="{
56
- height: 16,
57
- backgroundColor: 'rgba(0, 90, 0, 0.5)',
58
- whiteSpace: 'nowrap',
107
+ height: 35,
108
+ lineHeight: 35,
109
+ fontSize: 32,
110
+ backgroundColor: 'rgba(10, 0, 0, 0.5)',
59
111
  }"
60
112
  >
61
- {{
62
- "一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九拾"
63
- }}
113
+ {{ "四五六" }}
114
+ </div>
115
+ <div :style="{ height: 16 }">
116
+ {{ "七八九++" }}
64
117
  </div>
118
+ </jsv-flex-div>
65
119
 
66
- <!-- 短文字横向排布接续的测试 -->
67
- <jsv-flex-div
120
+ <!-- 短文字横向排布接续的测试 -->
121
+ <jsv-flex-div
122
+ :style="{
123
+ flexDirection: 'row',
124
+ alignItems: 'center',
125
+ backgroundColor: 'rgba(0, 110, 0, 0.5)',
126
+ alignSelf: 'center',
127
+ }"
128
+ >
129
+ <div :style="{ height: 16 }">
130
+ {{ "++一二三" }}
131
+ </div>
132
+ <div
133
+ v-if="showText"
68
134
  :style="{
69
- flexDirection: 'row',
70
- alignItems: 'center',
71
- backgroundColor: 'rgba(0, 110, 0, 0.5)',
72
- alignSelf: 'center',
135
+ height: 35,
136
+ lineHeight: 35,
137
+ fontSize: 32,
138
+ backgroundColor: 'rgba(10, 0, 0, 0.5)',
73
139
  }"
74
140
  >
75
- <div :style="{ height: 16 }">
76
- {{ "++一二三" }}
77
- </div>
78
- <div
79
- :style="{
80
- height: 20,
81
- lineHeight: 20,
82
- fontSize: 18,
83
- backgroundColor: 'rgba(10, 0, 0, 0.5)',
84
- }"
85
- >
86
- {{ "四五六" }}
87
- </div>
88
- <div :style="{ height: 16 }">
89
- {{ "七八九++" }}
90
- </div>
91
- </jsv-flex-div>
141
+ {{ "四五六" }}
142
+ </div>
143
+ <div :style="{ height: 16 }">
144
+ {{ "七八九++" }}
145
+ </div>
92
146
  </jsv-flex-div>
93
- </div>
147
+ </jsv-flex-div>
94
148
  </div>
149
+ </div>
95
150
  </template>
96
151
 
97
152
  <style scoped></style>