@shijiu/jsview-vue 0.9.254 → 0.9.267

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 (168) hide show
  1. package/dom/bin/package.json +11 -11
  2. package/dom/browser-root-style.css +21 -21
  3. package/loader/jsview-main.js +41 -41
  4. package/loader/jsview.config.default.js +37 -37
  5. package/loader/jsview.default.config.js +37 -37
  6. package/package.json +1 -5
  7. package/samples/AdvanceMetroWidget/App.vue +122 -122
  8. package/samples/AdvanceMetroWidget/Frame.vue +100 -100
  9. package/samples/AdvanceMetroWidget/Item.vue +57 -57
  10. package/samples/AdvanceMetroWidget/data.js +136 -136
  11. package/samples/AnimPicture/App.vue +223 -223
  12. package/samples/Basic/App.vue +128 -128
  13. package/samples/Basic/components/TitleBar.vue +28 -28
  14. package/samples/Basic/components/anim/AnimGroup.vue +67 -67
  15. package/samples/Basic/components/anim/AnimKeyframeBasic.vue +101 -101
  16. package/samples/Basic/components/anim/AnimKeyframeComposite.vue +52 -52
  17. package/samples/Basic/components/anim/AnimTransition.vue +116 -116
  18. package/samples/Basic/components/div/DivBackground.vue +14 -14
  19. package/samples/Basic/components/div/DivClip.vue +80 -80
  20. package/samples/Basic/components/div/DivCssScoped.vue +26 -26
  21. package/samples/Basic/components/div/DivCssVar.vue +49 -49
  22. package/samples/Basic/components/div/DivGroup1.vue +32 -32
  23. package/samples/Basic/components/div/DivGroup2.vue +40 -40
  24. package/samples/Basic/components/div/DivLayout.vue +11 -11
  25. package/samples/Basic/components/div/DivRadius.vue +46 -46
  26. package/samples/Basic/components/text/TextAlign.vue +47 -47
  27. package/samples/Basic/components/text/TextFontStyle.vue +57 -57
  28. package/samples/Basic/components/text/TextGroup.vue +31 -31
  29. package/samples/Basic/components/text/TextOverflow.vue +77 -77
  30. package/samples/BasicFocusControl/App.vue +124 -124
  31. package/samples/BasicFocusControl/components/BaseBlock.vue +50 -50
  32. package/samples/BasicFocusControl/components/MainArea.vue +97 -97
  33. package/samples/BasicFocusControl/components/MainAreaLeftBlock.vue +20 -20
  34. package/samples/BasicFocusControl/components/MainAreaRightBlock.vue +29 -29
  35. package/samples/BasicFocusControl/components/SideBar.vue +72 -72
  36. package/samples/BasicFocusControl/components/SideBarBlock.vue +29 -29
  37. package/samples/ClassNameDemo/App.vue +119 -119
  38. package/samples/ClassNameDemo/components/ContentItem.vue +252 -252
  39. package/samples/ClassNameDemo/components/LoadingView.vue +43 -43
  40. package/samples/ClassNameDemo/components/TitleView.vue +24 -24
  41. package/samples/ClassNameDemo/data.js +24 -24
  42. package/samples/ColorSpace/App.vue +134 -134
  43. package/samples/DemoHomepage/App.vue +31 -31
  44. package/samples/DemoHomepage/components/BodyFrame.vue +81 -81
  45. package/samples/DemoHomepage/components/Dialog.vue +93 -93
  46. package/samples/DemoHomepage/components/Item.vue +76 -76
  47. package/samples/DemoHomepage/components/TabFrame.vue +86 -86
  48. package/samples/DemoHomepage/router.js +132 -132
  49. package/samples/DemoHomepage/views/Homepage.vue +186 -186
  50. package/samples/FlipCard/App.vue +80 -80
  51. package/samples/FlipCard/FlipCard.vue +123 -123
  52. package/samples/FlipCard/data.js +12 -12
  53. package/samples/FlowMultiWidget/App.vue +90 -90
  54. package/samples/FlowMultiWidget/components/Block.vue +106 -106
  55. package/samples/FlowMultiWidget/components/FlowPage.vue +59 -59
  56. package/samples/FlowMultiWidget/components/Item.vue +102 -102
  57. package/samples/FlowMultiWidget/components/MenuItem.vue +71 -71
  58. package/samples/FlowMultiWidget/components/MyMenu.vue +89 -89
  59. package/samples/FlowMultiWidget/data.js +446 -446
  60. package/samples/HashHistory/App.vue +124 -124
  61. package/samples/HashHistory/components/HorizontalButtonList.vue +113 -113
  62. package/samples/HashHistory/components/Item.vue +73 -73
  63. package/samples/HashHistory/router.js +29 -29
  64. package/samples/HashHistory/views/BasePage.vue +18 -18
  65. package/samples/HashHistory/views/MainPage.vue +67 -67
  66. package/samples/HashHistory/views/SubPage.vue +78 -78
  67. package/samples/HashHistory/views/SubPageFirst.vue +9 -9
  68. package/samples/HashHistory/views/SubPageSecond.vue +9 -9
  69. package/samples/LongImage/App.vue +96 -96
  70. package/samples/LongImage/Button.vue +153 -153
  71. package/samples/LongImage/LongImageScroll.vue +126 -126
  72. package/samples/LongImage/Scroll.vue +15 -15
  73. package/samples/LongText/App.vue +111 -111
  74. package/samples/LongText/Button.vue +153 -153
  75. package/samples/LongText/LongTextScroll.vue +224 -224
  76. package/samples/LongText/Scroll.vue +15 -15
  77. package/samples/Preload/App.vue +145 -145
  78. package/samples/Preload/data.js +22 -22
  79. package/samples/Preload/preloadItem.vue +21 -21
  80. package/samples/QrcodeDemo/App.vue +72 -72
  81. package/samples/SimpleWidgetDemo/App.vue +203 -203
  82. package/samples/SimpleWidgetDemo/Item.vue +82 -82
  83. package/samples/SimpleWidgetDemo/components/ContentItem.vue +411 -411
  84. package/samples/SimpleWidgetDemo/components/MyTab.vue +116 -116
  85. package/samples/SimpleWidgetDemo/data.js +110 -110
  86. package/samples/SprayView/App.vue +269 -269
  87. package/samples/SpriteImage/App.vue +174 -174
  88. package/samples/SpriteImage/images/egg_break.json +116 -116
  89. package/samples/TextBox/App.vue +178 -178
  90. package/samples/TextBox/RenderCenter.vue +108 -108
  91. package/samples/TextBox/RenderLeft.vue +108 -108
  92. package/samples/TextBox/RenderOneLine.vue +119 -119
  93. package/samples/TextBox/RenderRight.vue +106 -106
  94. package/samples/TextShadowDemo/App.vue +97 -97
  95. package/samples/TextureSize/App.vue +141 -141
  96. package/samples/ThrowMoveDemo/AccelerateDemo.vue +117 -117
  97. package/samples/ThrowMoveDemo/App.vue +113 -113
  98. package/samples/ThrowMoveDemo/LRParabolicDemo.vue +115 -115
  99. package/samples/ThrowMoveDemo/TargetDemo.vue +116 -116
  100. package/samples/ThrowMoveDemo/UDParabolicDemo.vue +121 -121
  101. package/samples/TransitPage/App.vue +40 -40
  102. package/samples/VideoDemo/App.vue +137 -137
  103. package/samples/VideoDemo/components/Button.vue +68 -68
  104. package/samples/VideoDemo/components/Controllor.vue +195 -195
  105. package/samples/VideoDemo/components/VideoFrame.vue +152 -152
  106. package/scripts/common.js +57 -115
  107. package/scripts/jsview-install-local-packages.js +73 -73
  108. package/scripts/jsview-post-build.js +127 -127
  109. package/scripts/jsview-post-install.js +78 -78
  110. package/scripts/jsview-run-android.js +64 -64
  111. package/utils/JsViewEngineWidget/bin/index.js +1 -1
  112. package/utils/JsViewEngineWidget/bin/package.json +11 -11
  113. package/utils/JsViewVueTools/JsvHashHistory.js +111 -111
  114. package/utils/JsViewVueTools/JsvRuntimeBridge.js +417 -417
  115. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +80 -80
  116. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserQrcode.vue +147 -147
  117. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserSpray.vue +54 -54
  118. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/ApicDataBase.js +28 -28
  119. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/BrowserApic.vue +123 -123
  120. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/GifData.js +83 -83
  121. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/LoopToolBase.js +25 -25
  122. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/NormalLoopTool.js +61 -61
  123. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/PartLoopTool.js +119 -119
  124. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/Viewer.js +106 -106
  125. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/WebpData.js +141 -141
  126. package/utils/JsViewVueWidget/BrowserDebugWidget/WidgetLoader.js +20 -20
  127. package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +204 -204
  128. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +63 -63
  129. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +426 -426
  130. package/utils/JsViewVueWidget/JsvActorMove/index.js +12 -12
  131. package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +178 -178
  132. package/utils/JsViewVueWidget/JsvApic/index.js +17 -17
  133. package/utils/JsViewVueWidget/JsvMarquee.vue +196 -196
  134. package/utils/JsViewVueWidget/JsvNinePatch.vue +76 -76
  135. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +350 -350
  136. package/utils/JsViewVueWidget/JsvPreload/index.js +21 -21
  137. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +140 -140
  138. package/utils/JsViewVueWidget/JsvQrcode/index.js +18 -18
  139. package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +139 -139
  140. package/utils/JsViewVueWidget/JsvSpray/index.js +14 -14
  141. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +447 -447
  142. package/utils/JsViewVueWidget/JsvSpriteAnim/SpriteController.js +56 -56
  143. package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +6 -6
  144. package/utils/JsViewVueWidget/JsvSwiper/Indicator.vue +34 -34
  145. package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +494 -494
  146. package/utils/JsViewVueWidget/JsvSwiper/index.js +9 -9
  147. package/utils/JsViewVueWidget/JsvSwiper3D/Indicator.vue +34 -34
  148. package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +403 -403
  149. package/utils/JsViewVueWidget/JsvSwiper3D/index.js +9 -9
  150. package/utils/JsViewVueWidget/JsvTextBox.vue +110 -110
  151. package/utils/JsViewVueWidget/JsvVideo.vue +35 -35
  152. package/patches/node_modules/@babel/preset-env/lib/available-plugins.js +0 -219
  153. package/patches/node_modules/@vue/cli-plugin-typescript/index.js +0 -100
  154. package/patches/node_modules/@vue/cli-service/lib/commands/serve.js +0 -395
  155. package/patches/node_modules/@vue/cli-service/lib/config/app.js +0 -272
  156. package/patches/node_modules/@vue/cli-service/lib/config/assets.js +0 -70
  157. package/patches/node_modules/@vue/cli-service/lib/config/base.js +0 -212
  158. package/patches/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js +0 -2566
  159. package/patches/node_modules/@vue/compiler-sfc/dist/jsview-css-to-js.js +0 -274
  160. package/patches/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +0 -1596
  161. package/patches/node_modules/postcss-js/objectifier.js +0 -90
  162. package/patches/node_modules/vue-loader/dist/resolveScript.js +0 -70
  163. package/scripts/deploy-fast-pack.js +0 -17
  164. package/scripts/deploy-fast-publish.js +0 -44
  165. package/scripts/deploy-git-commit-empty.js +0 -21
  166. package/scripts/deploy-prepare.js +0 -56
  167. package/scripts/make-js.sh +0 -181
  168. package/vetur.config.js +0 -5
@@ -1,11 +1,11 @@
1
- {
2
- "name": "jsview-dom",
3
- "version": "1.0.313",
4
- "description": "JsView DOM wrapper library used to get jsview support",
5
- "keywords": [],
6
- "author": "Donglin.lu <donglin.lu@qcast.cn>",
7
- "license": "ISC",
8
- "dependencies": {
9
- "gifuct-js": "2.1.1"
10
- }
11
- }
1
+ {
2
+ "name": "jsview-dom",
3
+ "version": "1.0.313",
4
+ "description": "JsView DOM wrapper library used to get jsview support",
5
+ "keywords": [],
6
+ "author": "Donglin.lu <donglin.lu@qcast.cn>",
7
+ "license": "ISC",
8
+ "dependencies": {
9
+ "gifuct-js": "2.1.1"
10
+ }
11
+ }
@@ -1,21 +1,21 @@
1
- *{
2
- margin:0px;
3
- }
4
- div{
5
- position: absolute;
6
- background-size: 100% 100%;
7
- white-space: pre-wrap;
8
- pointer-events: none;
9
- }
10
-
11
- video {
12
- position: absolute;
13
- background-size: 100% 100%;
14
- }
15
-
16
- img{
17
- position: absolute;
18
- pointer-events: none;
19
- }
20
-
21
-
1
+ *{
2
+ margin:0px;
3
+ }
4
+ div{
5
+ position: absolute;
6
+ background-size: 100% 100%;
7
+ white-space: pre-wrap;
8
+ pointer-events: none;
9
+ }
10
+
11
+ video {
12
+ position: absolute;
13
+ background-size: 100% 100%;
14
+ }
15
+
16
+ img{
17
+ position: absolute;
18
+ pointer-events: none;
19
+ }
20
+
21
+
@@ -1,42 +1,42 @@
1
- import JsViewDefConfig from "./jsview.default.config"
2
- import JsViewVendorConfig from "/src/appConfig/jsview.config"
3
- import { loadJsViewEnv } from './loader'
4
-
5
- function deepMerge(target, source) {
6
- const isObject = (obj) => obj && typeof obj === 'object';
7
-
8
- if (!isObject(target) || !isObject(source)) {
9
- return source;
10
- }
11
-
12
- Object.keys(source).forEach(key => {
13
- const targetValue = target[key];
14
- const sourceValue = source[key];
15
-
16
- if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {
17
- target[key] = targetValue.concat(sourceValue);
18
- } else if (isObject(targetValue) && isObject(sourceValue)) {
19
- target[key] = deepMerge(Object.assign({}, targetValue), sourceValue);
20
- } else {
21
- target[key] = sourceValue;
22
- }
23
- });
24
-
25
- return target;
26
- }
27
-
28
- function main() {
29
- // 使用vendor配置值覆盖默认配置。
30
- let config = JsViewDefConfig;
31
- deepMerge(config, JsViewVendorConfig);
32
- console.log("JsView config: " + JSON.stringify(config));
33
-
34
- // 加载jsview运行环境。
35
- loadJsViewEnv(config, () => {
36
- // JsView环境加载完毕后,加载vue的main.js文件。
37
- import('/src/main.ts');
38
- })
39
- }
40
-
41
- // webpack运行入口
1
+ import JsViewDefConfig from "./jsview.default.config"
2
+ import JsViewVendorConfig from "/src/appConfig/jsview.config"
3
+ import { loadJsViewEnv } from './loader'
4
+
5
+ function deepMerge(target, source) {
6
+ const isObject = (obj) => obj && typeof obj === 'object';
7
+
8
+ if (!isObject(target) || !isObject(source)) {
9
+ return source;
10
+ }
11
+
12
+ Object.keys(source).forEach(key => {
13
+ const targetValue = target[key];
14
+ const sourceValue = source[key];
15
+
16
+ if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {
17
+ target[key] = targetValue.concat(sourceValue);
18
+ } else if (isObject(targetValue) && isObject(sourceValue)) {
19
+ target[key] = deepMerge(Object.assign({}, targetValue), sourceValue);
20
+ } else {
21
+ target[key] = sourceValue;
22
+ }
23
+ });
24
+
25
+ return target;
26
+ }
27
+
28
+ function main() {
29
+ // 使用vendor配置值覆盖默认配置。
30
+ let config = JsViewDefConfig;
31
+ deepMerge(config, JsViewVendorConfig);
32
+ console.log("JsView config: " + JSON.stringify(config));
33
+
34
+ // 加载jsview运行环境。
35
+ loadJsViewEnv(config, () => {
36
+ // JsView环境加载完毕后,加载vue的main.js文件。
37
+ import('/src/main.ts');
38
+ })
39
+ }
40
+
41
+ // webpack运行入口
42
42
  main();
@@ -1,37 +1,37 @@
1
- export default {
2
- jsviewConfig: {
3
- // (可选配置)localStorage支持
4
- // domain可以为任意字符串,各Domain的localStorage互相隔离, 默认值是hostname
5
- // presetKeys为预置key,可以直接使用localStorage.xxx的形式,避免undefined错误
6
- localStorage: {
7
- domain: "default",
8
- presetKeys: [
9
- "value1",
10
- "value2"
11
- ],
12
- },
13
-
14
- // (可选配置)填写main.js或者bundle.js相对于index.html的相对位置,
15
- // 用于image/import.then的相对寻址, vue3默认值是/js/
16
- jsSubPath: "/js/",
17
- },
18
-
19
- vendorConfig: {
20
- // (可选配置)设置屏幕坐标映射值,screenWidth为屏幕画布定义的宽度,displayScale为清晰度,
21
- // 默认值是画布宽度1280px, 清晰度为1.0
22
- designedMap: {
23
- screenWidth: 1280,
24
- displayScale: 1.0
25
- },
26
-
27
- // (可选配置)按键接受的扩展,例如将静音按键(JAVA键值为164)映射为JS键值20001,
28
- // PS:注意"164"的引号
29
- bindKeys: {
30
- keys: {
31
- 164: 20001
32
- },
33
- syncKeys: {
34
- }
35
- },
36
- }
37
- }
1
+ export default {
2
+ jsviewConfig: {
3
+ // (可选配置)localStorage支持
4
+ // domain可以为任意字符串,各Domain的localStorage互相隔离, 默认值是hostname
5
+ // presetKeys为预置key,可以直接使用localStorage.xxx的形式,避免undefined错误
6
+ localStorage: {
7
+ domain: "default",
8
+ presetKeys: [
9
+ "value1",
10
+ "value2"
11
+ ],
12
+ },
13
+
14
+ // (可选配置)填写main.js或者bundle.js相对于index.html的相对位置,
15
+ // 用于image/import.then的相对寻址, vue3默认值是/js/
16
+ jsSubPath: "/js/",
17
+ },
18
+
19
+ vendorConfig: {
20
+ // (可选配置)设置屏幕坐标映射值,screenWidth为屏幕画布定义的宽度,displayScale为清晰度,
21
+ // 默认值是画布宽度1280px, 清晰度为1.0
22
+ designedMap: {
23
+ screenWidth: 1280,
24
+ displayScale: 1.0
25
+ },
26
+
27
+ // (可选配置)按键接受的扩展,例如将静音按键(JAVA键值为164)映射为JS键值20001,
28
+ // PS:注意"164"的引号
29
+ bindKeys: {
30
+ keys: {
31
+ 164: 20001
32
+ },
33
+ syncKeys: {
34
+ }
35
+ },
36
+ }
37
+ }
@@ -1,37 +1,37 @@
1
- export default {
2
- jsviewConfig: {
3
- // (可选配置)localStorage支持
4
- // domain可以为任意字符串,各Domain的localStorage互相隔离, 默认值是hostname
5
- // presetKeys为预置key,可以直接使用localStorage.xxx的形式,避免undefined错误
6
- localStorage: {
7
- domain: "default",
8
- presetKeys: [
9
- "value1",
10
- "value2"
11
- ],
12
- },
13
-
14
- // (可选配置)填写main.js或者bundle.js相对于index.html的相对位置,
15
- // 用于image/import.then的相对寻址, vue3默认值是/js/
16
- jsSubPath: "/js/",
17
- },
18
-
19
- vendorConfig: {
20
- // (可选配置)设置屏幕坐标映射值,screenWidth为屏幕画布定义的宽度,displayScale为清晰度,
21
- // 默认值是画布宽度1280px, 清晰度为1.0
22
- designedMap: {
23
- screenWidth: 1280,
24
- displayScale: 1.0
25
- },
26
-
27
- // (可选配置)按键接受的扩展,例如将静音按键(JAVA键值为164)映射为JS键值20001,
28
- // PS:注意"164"的引号
29
- bindKeys: {
30
- keys: {
31
- 164: 20001
32
- },
33
- syncKeys: {
34
- }
35
- },
36
- }
37
- }
1
+ export default {
2
+ jsviewConfig: {
3
+ // (可选配置)localStorage支持
4
+ // domain可以为任意字符串,各Domain的localStorage互相隔离, 默认值是hostname
5
+ // presetKeys为预置key,可以直接使用localStorage.xxx的形式,避免undefined错误
6
+ localStorage: {
7
+ domain: "default",
8
+ presetKeys: [
9
+ "value1",
10
+ "value2"
11
+ ],
12
+ },
13
+
14
+ // (可选配置)填写main.js或者bundle.js相对于index.html的相对位置,
15
+ // 用于image/import.then的相对寻址, vue3默认值是/js/
16
+ jsSubPath: "/js/",
17
+ },
18
+
19
+ vendorConfig: {
20
+ // (可选配置)设置屏幕坐标映射值,screenWidth为屏幕画布定义的宽度,displayScale为清晰度,
21
+ // 默认值是画布宽度1280px, 清晰度为1.0
22
+ designedMap: {
23
+ screenWidth: 1280,
24
+ displayScale: 1.0
25
+ },
26
+
27
+ // (可选配置)按键接受的扩展,例如将静音按键(JAVA键值为164)映射为JS键值20001,
28
+ // PS:注意"164"的引号
29
+ bindKeys: {
30
+ keys: {
31
+ 164: 20001
32
+ },
33
+ syncKeys: {
34
+ }
35
+ },
36
+ }
37
+ }
package/package.json CHANGED
@@ -1,15 +1,11 @@
1
1
  {
2
2
  "name": "@shijiu/jsview-vue",
3
- "version": "0.9.254",
3
+ "version": "0.9.267",
4
4
  "bin": {
5
5
  "jsview-post-build": "./scripts/jsview-post-build.js",
6
6
  "jsview-post-install": "./scripts/jsview-post-install.js",
7
7
  "jsview-install-local-packages": "./scripts/jsview-install-local-packages.js"
8
8
  },
9
- "scripts": {
10
- "fast-publish": "node ./scripts/deploy-fast-publish.js",
11
- "fast-pack": "node ./scripts/deploy-fast-pack.js"
12
- },
13
9
  "repository": "system/jsview-vue",
14
10
  "bugs": "http://gitlab.qcast.cn/system/jsview-vue/issues",
15
11
  "keywords": [
@@ -1,123 +1,123 @@
1
- <!--
2
- * 【界面概述】
3
- * 展示SimpleWidget控件的嵌套用法
4
- *
5
- * 【控件介绍】
6
- * SimpleWidget:见simpleMetroWidget
7
- * SWidgetDispatcher:向SimpleWidget分发消息的对象,用于设置SimpleWidget内部状态
8
- * 成员函数:
9
- * dispatch
10
- * @params msg {obj} 消息体,{type: SWidgetDispatcher.Type, data: 数据}
11
- * SWidgetDispatcher.Type: 消息的类型
12
- * "setFocusId": Focus时初始的焦点id data为int
13
- * "setFocusRect": Focus时距离某区域最近的item获得焦点 data为{type:EdgeDirection, rect:{x:0, y:0, widht:0, height:0}}
14
- * "updateItem": 重新描画某个item data为int
15
- * "slideToItem": 界面移到某个item处 data为int
16
- *
17
- *
18
- * 【技巧说明】
19
- * Q: 如何实现嵌套?
20
- * A: 当SimpleWidget的measure回调返回值中hasSub为true时,该item的renderItem就可以返回可获得焦点的控件
21
- *
22
- * Q: 如何实现焦点的就近切换?
23
- * A: 通过dispatcher向将要获得焦点的控件发送setFocusRect消息。
24
- -->
25
-
26
- <script>
27
- import { frameData, itemData } from "./data";
28
- import {
29
- HORIZONTAL,
30
- SimpleWidget,
31
- } from "jsview/utils/JsViewEngineWidget";
32
- import Frame from "./Frame.vue";
33
-
34
- const measures = (item) => {
35
- return {
36
- width: item.blocks.w,
37
- height: item.blocks.h,
38
- focusable: item.focusable,
39
- hasSub: item.hasSub,
40
- };
41
- };
42
- export default {
43
- components: { SimpleWidget, Frame },
44
- setup() {
45
- return {
46
- measures,
47
- name: "/advanceMetroWidget",
48
- direction: HORIZONTAL,
49
- frameData,
50
- itemData,
51
- };
52
- },
53
- methods: {
54
- onKeyDown(ev) {
55
- // 8:Backspace, 27:Escape, 10000:盒子返回键
56
- if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
57
- this.$router?.go(-1); // 有router时,是从DemoHomepage进入,回退
58
- return true;
59
- }
60
- return false;
61
- },
62
- onFocus() {
63
- this.$refs.focusNode.findBlockByName("/advanceMetroWidget").requestFocus();
64
- },
65
- },
66
-
67
- data() {
68
- return {};
69
- },
70
- mounted() {},
71
- };
72
- </script>
73
-
74
- <template>
75
- <div class="rootSize">
76
- <jsv-focus-block
77
- autoFocus
78
- ref="focusNode"
79
- :onAction="{
80
- onKeyDown: onKeyDown,
81
- onFocus: onFocus,
82
- }"
83
- >
84
- <simple-widget
85
- :name="name"
86
- :data="frameData"
87
- :width="680"
88
- :height="680"
89
- :direction="direction"
90
- :measures="measures"
91
- >
92
- <template #renderItem="{ data, query, onEdge, onAction }">
93
- <frame
94
- :name="name + '/frame_' + query.id"
95
- :data="data"
96
- :itemData="itemData"
97
- :query="query"
98
- :onEdge="onEdge"
99
- :onAction="onAction"
100
- />
101
- </template>
102
- </simple-widget>
103
- </jsv-focus-block>
104
- </div>
105
- </template>
106
-
107
- <style scoped>
108
- .rootSize {
109
- width: 1920;
110
- height: 1080;
111
- background-color: #334c4c;
112
- }
113
-
114
- .widgetPos {
115
- top: 120;
116
- left: 50;
117
- }
118
-
119
- .focusPos {
120
- top: 10;
121
- left: 10;
122
- }
1
+ <!--
2
+ * 【界面概述】
3
+ * 展示SimpleWidget控件的嵌套用法
4
+ *
5
+ * 【控件介绍】
6
+ * SimpleWidget:见simpleMetroWidget
7
+ * SWidgetDispatcher:向SimpleWidget分发消息的对象,用于设置SimpleWidget内部状态
8
+ * 成员函数:
9
+ * dispatch
10
+ * @params msg {obj} 消息体,{type: SWidgetDispatcher.Type, data: 数据}
11
+ * SWidgetDispatcher.Type: 消息的类型
12
+ * "setFocusId": Focus时初始的焦点id data为int
13
+ * "setFocusRect": Focus时距离某区域最近的item获得焦点 data为{type:EdgeDirection, rect:{x:0, y:0, widht:0, height:0}}
14
+ * "updateItem": 重新描画某个item data为int
15
+ * "slideToItem": 界面移到某个item处 data为int
16
+ *
17
+ *
18
+ * 【技巧说明】
19
+ * Q: 如何实现嵌套?
20
+ * A: 当SimpleWidget的measure回调返回值中hasSub为true时,该item的renderItem就可以返回可获得焦点的控件
21
+ *
22
+ * Q: 如何实现焦点的就近切换?
23
+ * A: 通过dispatcher向将要获得焦点的控件发送setFocusRect消息。
24
+ -->
25
+
26
+ <script>
27
+ import { frameData, itemData } from "./data";
28
+ import {
29
+ HORIZONTAL,
30
+ SimpleWidget,
31
+ } from "jsview/utils/JsViewEngineWidget";
32
+ import Frame from "./Frame.vue";
33
+
34
+ const measures = (item) => {
35
+ return {
36
+ width: item.blocks.w,
37
+ height: item.blocks.h,
38
+ focusable: item.focusable,
39
+ hasSub: item.hasSub,
40
+ };
41
+ };
42
+ export default {
43
+ components: { SimpleWidget, Frame },
44
+ setup() {
45
+ return {
46
+ measures,
47
+ name: "/advanceMetroWidget",
48
+ direction: HORIZONTAL,
49
+ frameData,
50
+ itemData,
51
+ };
52
+ },
53
+ methods: {
54
+ onKeyDown(ev) {
55
+ // 8:Backspace, 27:Escape, 10000:盒子返回键
56
+ if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
57
+ this.$router?.go(-1); // 有router时,是从DemoHomepage进入,回退
58
+ return true;
59
+ }
60
+ return false;
61
+ },
62
+ onFocus() {
63
+ this.$refs.focusNode.findBlockByName("/advanceMetroWidget").requestFocus();
64
+ },
65
+ },
66
+
67
+ data() {
68
+ return {};
69
+ },
70
+ mounted() {},
71
+ };
72
+ </script>
73
+
74
+ <template>
75
+ <div class="rootSize">
76
+ <jsv-focus-block
77
+ autoFocus
78
+ ref="focusNode"
79
+ :onAction="{
80
+ onKeyDown: onKeyDown,
81
+ onFocus: onFocus,
82
+ }"
83
+ >
84
+ <simple-widget
85
+ :name="name"
86
+ :data="frameData"
87
+ :width="680"
88
+ :height="680"
89
+ :direction="direction"
90
+ :measures="measures"
91
+ >
92
+ <template #renderItem="{ data, query, onEdge, onAction }">
93
+ <frame
94
+ :name="name + '/frame_' + query.id"
95
+ :data="data"
96
+ :itemData="itemData"
97
+ :query="query"
98
+ :onEdge="onEdge"
99
+ :onAction="onAction"
100
+ />
101
+ </template>
102
+ </simple-widget>
103
+ </jsv-focus-block>
104
+ </div>
105
+ </template>
106
+
107
+ <style scoped>
108
+ .rootSize {
109
+ width: 1920;
110
+ height: 1080;
111
+ background-color: #334c4c;
112
+ }
113
+
114
+ .widgetPos {
115
+ top: 120;
116
+ left: 50;
117
+ }
118
+
119
+ .focusPos {
120
+ top: 10;
121
+ left: 10;
122
+ }
123
123
  </style>