@shijiu/jsview-vue-samples 2.3.0 → 2.3.151-test.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 (117) hide show
  1. package/DashPath/App.vue +17 -16
  2. package/DashPath/AppForOperator.vue +2 -4
  3. package/DemoForOperator/AnimPic/AnimPic.vue +24 -2
  4. package/DemoForOperator/Banger/Banger/Banger.vue +73 -9
  5. package/DemoForOperator/Blur/Blur.vue +146 -0
  6. package/DemoForOperator/Blur/BlurInOut/BlurInOut.vue +158 -0
  7. package/DemoForOperator/Blur/BlurInOut/StaticBgSlide.vue +162 -0
  8. package/DemoForOperator/Blur/BlurPopup/BlurPopup.vue +113 -0
  9. package/DemoForOperator/BookFlip/App.vue +115 -0
  10. package/DemoForOperator/BookFlip/BookFlip/FlipPage.vue +179 -0
  11. package/DemoForOperator/BookFlip/BookFlip/FlippingBook.vue +310 -0
  12. package/DemoForOperator/BookFlip/BookFlip/flip.glsl +135 -0
  13. package/DemoForOperator/BookFlip/BookPage.vue +82 -0
  14. package/DemoForOperator/Bounce/Bounce.vue +33 -1
  15. package/DemoForOperator/ChunLian/Couplets.vue +44 -1
  16. package/DemoForOperator/ClickSpriteAnim/App.vue +130 -0
  17. package/DemoForOperator/ClickSpriteAnim/Item.vue +74 -0
  18. package/DemoForOperator/DominantColor/App.vue +187 -0
  19. package/DemoForOperator/EpisodeList/EpisodeList/Controller.vue +0 -3
  20. package/DemoForOperator/EpisodeList/EpisodeList/EpisodeList.vue +76 -2
  21. package/DemoForOperator/Firework1/App.vue +1 -1
  22. package/DemoForOperator/Firework1/Fireworks.vue +50 -11
  23. package/DemoForOperator/FlipPage/FlipPage/FlipPage.vue +29 -1
  24. package/DemoForOperator/Focus/Alpha/AlphaFocusBox.vue +27 -2
  25. package/DemoForOperator/Focus/Light/LightFocusBox.vue +42 -1
  26. package/DemoForOperator/Focus/Normal/NormalFocusBox.vue +12 -0
  27. package/DemoForOperator/FrameShadow/App.vue +193 -0
  28. package/DemoForOperator/FrameShadow/FrameShadow.vue +61 -0
  29. package/DemoForOperator/FullscreenIn/App.vue +1 -1
  30. package/DemoForOperator/FullscreenIn/FullscreenPoster.vue +18 -3
  31. package/DemoForOperator/Genie/geniePakcer/Genie.vue +60 -18
  32. package/DemoForOperator/GrayFilter/GrayFilter.vue +21 -0
  33. package/DemoForOperator/Jigsaw/JigsawFull.vue +46 -4
  34. package/DemoForOperator/Jigsaw/JigsawSingle.vue +34 -2
  35. package/DemoForOperator/LongChatBox/App.vue +36 -0
  36. package/DemoForOperator/LongChatBox/Bubble.vue +104 -0
  37. package/DemoForOperator/LongChatBox/LongChat.vue +173 -0
  38. package/DemoForOperator/LongChatBox/TextManager.ts +147 -0
  39. package/DemoForOperator/LongChatBox/VirtualList.vue +298 -0
  40. package/DemoForOperator/LongChatBox/testData.js +51 -0
  41. package/DemoForOperator/LongChatBox/utile.js +331 -0
  42. package/DemoForOperator/Particle/Drop/DropParticle.vue +33 -1
  43. package/DemoForOperator/Particle/Explode/ExplodeParticle.vue +23 -2
  44. package/DemoForOperator/PosterAnim/PosterAnim.js +21 -0
  45. package/DemoForOperator/PosterOverflow/PosterOverflow.vue +16 -0
  46. package/DemoForOperator/Resize/App.vue +157 -0
  47. package/DemoForOperator/Resize/Resize/Item.vue +234 -0
  48. package/DemoForOperator/Resize/Resize/Resize.vue +96 -0
  49. package/DemoForOperator/Ripple/Ripple.vue +16 -1
  50. package/DemoForOperator/ScreenShootScale/App.vue +96 -0
  51. package/DemoForOperator/ScreenShootScale/Back.vue +86 -0
  52. package/DemoForOperator/ScreenShootScale/Front.vue +133 -0
  53. package/DemoForOperator/ScreenShootScale/Item.vue +62 -0
  54. package/DemoForOperator/ScreenShootScale/ScreenShootScale.vue +109 -0
  55. package/DemoForOperator/SmoothSwiper/App.vue +50 -0
  56. package/DemoForOperator/Sound/Bounce/App.vue +56 -0
  57. package/DemoForOperator/Sound/Bounce/Bounce.vue +87 -0
  58. package/DemoForOperator/Sound/Bounce/FreeMoveBuilder.js +146 -0
  59. package/DemoForOperator/Sound/Bounce/bgmusic.mp3 +0 -0
  60. package/DemoForOperator/Sound/Bounce/coin.mp3 +0 -0
  61. package/DemoForOperator/Sound/FocusMove/App.vue +134 -0
  62. package/DemoForOperator/Sound/FocusMove/Item.vue +43 -0
  63. package/DemoForOperator/Sound/FocusMove/move.mp3 +0 -0
  64. package/DemoForOperator/Sound/Rain/App.vue +11 -0
  65. package/DemoForOperator/Sound/Rain/Raining/Rain.vue +69 -0
  66. package/DemoForOperator/Sound/Rain/Raining/RainScene.vue +118 -0
  67. package/DemoForOperator/Sound/Sound/Sound.vue +24 -0
  68. package/DemoForOperator/Sound/Sound/index.js +4 -0
  69. package/DemoForOperator/Sound/Sound/useSound.js +112 -0
  70. package/DemoForOperator/Sprite/Sprite.vue +62 -5
  71. package/DemoForOperator/Stretch/Stretch/Stretch.vue +52 -2
  72. package/DemoForOperator/Swiper/App.vue +101 -0
  73. package/DemoForOperator/Swiper/Item.vue +56 -0
  74. package/DemoForOperator/Swiper/ParallaxSlide.vue +164 -0
  75. package/DemoForOperator/TabContent/TabContent/TabContent.vue +39 -1
  76. package/DemoForOperator/TabContentVertical/App.vue +104 -0
  77. package/DemoForOperator/TabContentVertical/ContentPage.vue +67 -0
  78. package/DemoForOperator/TabContentVertical/Item.vue +94 -0
  79. package/DemoForOperator/TabContentVertical/PageItem.vue +40 -0
  80. package/DemoForOperator/TabContentVertical/TabContent/CreepFocus.vue +160 -0
  81. package/DemoForOperator/TabContentVertical/TabContent/Item.vue +63 -0
  82. package/DemoForOperator/TabContentVertical/TabContent/TabContent.vue +184 -0
  83. package/DemoForOperator/TabContentVertical/TabContent/TabItem.vue +368 -0
  84. package/DemoForOperator/TabContentVertical/TabContent/TabWidget.vue +259 -0
  85. package/DemoForOperator/TabContentVertical/TabContent/Util.js +3 -0
  86. package/DemoForOperator/TabContentVertical/TabContent/ViewSwiper.vue +110 -0
  87. package/DemoForOperator/TabContentVertical/assets/children_science.png +0 -0
  88. package/DemoForOperator/TabContentVertical/assets/documentary.png +0 -0
  89. package/DemoForOperator/TabContentVertical/assets/free.png +0 -0
  90. package/DemoForOperator/TabContentVertical/assets/game.png +0 -0
  91. package/DemoForOperator/TabContentVertical/assets/home_selected.png +0 -0
  92. package/DemoForOperator/TabContentVertical/assets/movie_ticket.png +0 -0
  93. package/DemoForOperator/TabContentVertical/assets/my_account.png +0 -0
  94. package/DemoForOperator/TabContentVertical/assets/opera.png +0 -0
  95. package/DemoForOperator/TabContentVertical/assets/sports.png +0 -0
  96. package/DemoForOperator/TabContentVertical/assets/tv_drama.png +0 -0
  97. package/DemoForOperator/TabContentVertical/assets/variety_show.png +0 -0
  98. package/DemoForOperator/TabContentVertical/assets/vip.png +0 -0
  99. package/DemoForOperator/TabContentVertical/testData.js +76 -0
  100. package/DemoForOperator/Vortex/Vortex/Vortex.vue +26 -0
  101. package/DemoForOperator/routeList.js +118 -1
  102. package/DemoHomepage/components/Item.vue +11 -0
  103. package/DemoHomepage/router.js +75 -1
  104. package/GiftRain/components/SpriteTranslate.vue +68 -48
  105. package/HashHistory/App.vue +2 -2
  106. package/HashHistory/router.js +1 -1
  107. package/MetroWidgetDemos/TripleWidget/App.vue +7 -1
  108. package/MetroWidgetDemos/TripleWidget/Item.vue +16 -2
  109. package/MetroWidgetDemos/TripleWidget/SWidgetItem.vue +7 -1
  110. package/MetroWidgetDemos/TripleWidget/WidgetItem.vue +8 -2
  111. package/MetroWidgetDemos/routeList.js +17 -0
  112. package/PosterPacker/App.vue +2 -2
  113. package/ViewOpacity/App.vue +19 -0
  114. package/package.json +1 -1
  115. package/DashPath/DashPath.vue +0 -118
  116. package/DemoForOperator/ScalePoster/App.vue +0 -4
  117. package/DemoForOperator/ScalePoster/ScalePoster.vue +0 -0
@@ -0,0 +1,110 @@
1
+ <script setup>
2
+ import { onMounted, inject, ref, watch } from "vue";
3
+
4
+ const props = defineProps({
5
+ onEdge: Function,
6
+ name: String,
7
+ layout: Object,
8
+ dataLoader: Function, // (tabId) => Promise
9
+ animDuration: { type: Number, default: 200 },
10
+ onFocus: Function,
11
+ onBlur: Function,
12
+ });
13
+
14
+ const globalInfo = inject("globalInfo");
15
+ const animState = inject("animState");
16
+
17
+ const page0Show = ref(false);
18
+ let page0Data = null;
19
+ const page0Anim = ref({ anim: null, onend: null });
20
+ const appSwiper_onFocus = () => {
21
+ console.log("testtest swiper on focus")
22
+ props.onFocus();
23
+ };
24
+ const appSwiper_onBlur = () => {
25
+ console.log("testtest swiper on blur")
26
+ props.onBlur();
27
+ };
28
+
29
+ const appSwiper_tabIdWatcher = (newValue, oldValue) => {
30
+ let direction = newValue > oldValue ? "left" : "right";
31
+ page0Show.value = false;
32
+ page0Data = null;
33
+ page0Anim.value = ref({ anim: null, onend: null });
34
+ props.dataLoader(newValue).then((data) => {
35
+ console.log("testtest swiper data", data);
36
+ if (oldValue > -1) {
37
+ animState.value = 1;
38
+ }
39
+ page0Anim.value = {
40
+ anim:
41
+ oldValue != -1
42
+ ? `app-swiper-${direction}-slide-in ${
43
+ props.animDuration / 1000
44
+ }s cubic-bezier(0.05, 0.55, 0.13, 0.78) 1`
45
+ : null,
46
+ onend: () => {
47
+ animState.value = 0;
48
+ },
49
+ };
50
+ page0Data = data;
51
+ page0Show.value = true;
52
+ });
53
+ };
54
+
55
+ watch(
56
+ () => globalInfo.updateTabId,
57
+ (newValue, oldValue) => {
58
+ console.log("ccht updateTabId changed", globalInfo.updateTabId);
59
+ appSwiper_tabIdWatcher(newValue, oldValue);
60
+ }
61
+ );
62
+ </script>
63
+
64
+ <template>
65
+ <jsv-focus-block
66
+ :name="name"
67
+ ref="focusNode"
68
+ :onAction="{
69
+ onFocus: appSwiper_onFocus,
70
+ onBlur: appSwiper_onBlur,
71
+ }"
72
+ >
73
+ <div
74
+ id="page0"
75
+ :style="{
76
+ left: layout.left,
77
+ top: layout.top,
78
+ width: layout.width,
79
+ height: layout.height,
80
+ animation: page0Anim.anim,
81
+ animationFillMode: 'forwards',
82
+ }"
83
+ @animationend="page0Anim.onend"
84
+ >
85
+ <slot v-if="page0Show" :data="page0Data" :onEdge="onEdge"></slot>
86
+ </div>
87
+ </jsv-focus-block>
88
+ </template>
89
+
90
+ <style>
91
+ @keyframes app-swiper-left-slide-in {
92
+ from {
93
+ transform: translate3d(0px, 180px, 0px);
94
+ }
95
+ to {
96
+ transform: translate3d(0px, 0px, 0px);
97
+ /* animation-timing-function: cubic-bezier(0.05, 0.55, 0.13, 0.78); */
98
+ }
99
+ }
100
+
101
+ @keyframes app-swiper-right-slide-in {
102
+ from {
103
+ transform: translate3d(0px, -180px, 0px);
104
+ }
105
+ to {
106
+ transform: translate3d(0px, 0px, 0px);
107
+ /* animation-timing-function: cubic-bezier(0.05, 0.55, 0.13, 0.78); */
108
+ }
109
+ }
110
+ </style>
@@ -0,0 +1,76 @@
1
+ // 导入所有图片
2
+ import movieTicket from './assets/movie_ticket.png';
3
+ import varietyShow from './assets/variety_show.png';
4
+ import childrenScience from './assets/children_science.png';
5
+ import tvDrama from './assets/tv_drama.png';
6
+ import documentary from './assets/documentary.png';
7
+ import myAccount from './assets/my_account.png';
8
+ import free from './assets/free.png';
9
+ import opera from './assets/opera.png';
10
+ import vip from './assets/vip.png';
11
+ import sports from './assets/sports.png';
12
+ import homeSelected from './assets/home_selected.png';
13
+ import game from './assets/game.png';
14
+
15
+ export const testData = [
16
+ {
17
+ "indexId": 0,
18
+ "itemTitle": "电影票",
19
+ "icon": movieTicket
20
+ },
21
+ {
22
+ "indexId": 1,
23
+ "itemTitle": "综艺",
24
+ "icon": varietyShow
25
+ },
26
+ {
27
+ "indexId": 2,
28
+ "itemTitle": "少儿科普",
29
+ "icon": childrenScience
30
+ },
31
+ {
32
+ "indexId": 3,
33
+ "itemTitle": "电视剧",
34
+ "icon": tvDrama
35
+ },
36
+ {
37
+ "indexId": 4,
38
+ "itemTitle": "纪录片",
39
+ "icon": documentary
40
+ },
41
+ {
42
+ "indexId": 5,
43
+ "itemTitle": "我的",
44
+ "icon": myAccount,
45
+ },
46
+ {
47
+ "indexId": 6,
48
+ "itemTitle": "免费",
49
+ "icon": free,
50
+ },
51
+ {
52
+ "indexId": 7,
53
+ "itemTitle": "戏曲",
54
+ "icon": opera,
55
+ },
56
+ {
57
+ "indexId": 8,
58
+ "itemTitle": "VIP",
59
+ "icon": vip,
60
+ },
61
+ {
62
+ "indexId": 9,
63
+ "itemTitle": "体育",
64
+ "icon": sports,
65
+ },
66
+ {
67
+ "indexId": 10,
68
+ "itemTitle": "首页",
69
+ "icon": homeSelected,
70
+ },
71
+ {
72
+ "indexId": 11,
73
+ "itemTitle": "游戏",
74
+ "icon": game,
75
+ },
76
+ ];
@@ -52,6 +52,9 @@
52
52
  </template>
53
53
 
54
54
  <script setup>
55
+ /**
56
+ * @slot 默认插槽 - 用于放置需要进行漩涡动画的内容
57
+ */
55
58
  import vortexOutShader from "./vortexOut.glsl?raw";
56
59
  import vortexInShader from "./vortexIn.glsl?raw";
57
60
 
@@ -63,18 +66,36 @@ import {
63
66
  } from "jsview";
64
67
 
65
68
  const props = defineProps({
69
+ /**
70
+ * @type {Object} 布局配置对象
71
+ * @property {string} left - 组件左侧定位(如 '10px')
72
+ * @property {string} top - 组件顶部定位(如 '20px')
73
+ * @property {string} width - 组件宽度(如 '300px')
74
+ * @property {string} height - 组件高度(如 '200px')
75
+ */
66
76
  layout: {
67
77
  type: Object,
68
78
  required: true,
69
79
  },
80
+ /**
81
+ * @type {number} 动画持续时间(单位:秒)
82
+ * @default 1
83
+ */
70
84
  duration: {
71
85
  type: Number,
72
86
  default: 1,
73
87
  },
88
+ /**
89
+ * @type {boolean} 初始显示状态
90
+ * @default true
91
+ */
74
92
  initShow: {
75
93
  type: Boolean,
76
94
  default: true,
77
95
  },
96
+ /**
97
+ * @type {Function} 动画结束回调函数
98
+ */
78
99
  onAnimEnd: {
79
100
  type: Function,
80
101
  }
@@ -141,6 +162,11 @@ function capture() {
141
162
  }
142
163
 
143
164
  defineExpose({
165
+ /**
166
+ * 切换动画状态
167
+ * @example
168
+ * componentRef.value.switch();
169
+ */
144
170
  switch() {
145
171
  if (state == 0) {
146
172
  state = 1;
@@ -6,137 +6,254 @@
6
6
  export default [
7
7
  {
8
8
  meta: { nameText: '文字跑马灯', },
9
+ name: 'operator-文字跑马灯',
9
10
  path: '/operator/Marquee',
10
11
  component: () => import('@shijiu/jsview-vue-samples/Marquee/App.vue'),
11
12
  },
12
13
  {
13
14
  meta: { nameText: '二维码', },
15
+ name: 'operator-二维码',
14
16
  path: '/operator/QrcodeDemo',
15
17
  component: () => import('@shijiu/jsview-vue-samples/QrcodeDemo/App.vue'),
16
18
  },
17
19
  {
18
20
  meta: { nameText: '雷达图组件', },
21
+ name: 'operator-雷达图组件',
19
22
  path: '/operator/RadarChart',
20
23
  component: () => import('@shijiu/jsview-vue-samples/JsvRadarChart/App.vue')
21
24
  },
22
25
  {
23
26
  meta: { nameText: '进度条组件', },
27
+ name: 'operator-进度条组件',
24
28
  path: '/operator/ProgressBar',
25
29
  component: () => import('@shijiu/jsview-vue-samples/ProgressBar/App.vue'),
26
30
  },
27
31
  {
28
32
  meta: { nameText: '透视滚动组件', },
33
+ name: 'operator-透视滚动组件',
29
34
  path: '/operator/Swiper3D',
30
35
  component: () => import('@shijiu/jsview-vue-samples/SwiperTest/App.vue'),
31
36
  },
32
37
  {
33
38
  meta: { nameText: '春联、对联组件', },
39
+ name: 'operator-春联、对联组件',
34
40
  path: '/operator/ChunLian',
35
41
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/ChunLian/App.vue'),
36
42
  },
37
43
  {
38
44
  meta: { nameText: '公祭日黑白屏', },
45
+ name: 'operator-公祭日黑白屏',
39
46
  path: '/operator/GrayFilter',
40
47
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/GrayFilter/App.vue'),
41
48
  },
42
49
  {
43
50
  meta: { nameText: '动图', },
51
+ name: 'operator-动图',
44
52
  path: '/operator/AnimPic',
45
53
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/AnimPic/App.vue'),
46
54
  },
47
55
  {
48
56
  meta: { nameText: '焦点', },
57
+ name: 'operator-焦点',
49
58
  path: '/operator/Focus',
50
59
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Focus/App.vue'),
51
60
  },
61
+ {
62
+ meta: { nameText: '焦点框阴影', },
63
+ name: 'operator-焦点框阴影',
64
+ path: '/operator/FrameShadow',
65
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/FrameShadow/App.vue'),
66
+ },
52
67
  {
53
68
  meta: { nameText: '霸屏海报淡入效果落地效果', },
69
+ name: 'operator-霸屏海报淡入效果落地效果',
54
70
  path: '/operator/FullscreenIn',
55
71
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/FullscreenIn/App.vue'),
56
72
  },
57
73
  {
58
74
  meta: { nameText: '海报强调动画', },
75
+ name: 'operator-海报强调动画',
59
76
  path: '/operator/PosterAnim',
60
77
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/PosterAnim/App.vue'),
61
78
  },
62
79
  {
63
80
  meta: { nameText: '轮播图', },
81
+ name: 'operator-轮播图',
64
82
  path: '/operator/Swiper',
65
83
  component: () => import('@shijiu/jsview-vue-samples/Swiper/App.vue'),
66
84
  },
67
85
  {
68
86
  meta: { nameText: '弹跳动画', },
87
+ name: 'operator-弹跳动画',
69
88
  path: '/operator/Bounce',
70
89
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Bounce/App.vue'),
71
90
  },
72
91
  {
73
92
  meta: { nameText: '拼图组件', },
93
+ name: 'operator-拼图组件',
74
94
  path: '/operator/Jigsaw',
75
95
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Jigsaw/App.vue'),
76
96
  },
77
97
  {
78
98
  meta: { nameText: '焦点海报多层叠加突出效果', },
99
+ name: 'operator-焦点海报多层叠加突出效果',
79
100
  path: '/operator/PosterOverflow',
80
101
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/PosterOverflow/App.vue'),
81
102
  },
82
103
  {
83
104
  meta: { nameText: '推箱效果组件', },
105
+ name: 'operator-推箱效果组件',
84
106
  path: '/operator/Stretch',
85
107
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Stretch/App.vue'),
86
108
  },
87
109
  {
88
110
  meta: { nameText: '鞭炮组件', },
111
+ name: 'operator-鞭炮组件',
89
112
  path: '/operator/Banger',
90
113
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Banger/App.vue'),
91
114
  },
92
115
  {
93
116
  meta: { nameText: '礼花组件', },
117
+ name: 'operator-礼花组件',
94
118
  path: '/operator/Firework1',
95
119
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Firework1/App.vue'),
96
120
  },
97
121
  {
98
122
  meta: { nameText: '精灵图组件(动图)', },
123
+ name: 'operator-精灵图组件(动图)',
99
124
  path: '/operator/Sprite',
100
125
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Sprite/App.vue'),
101
126
  },
102
127
  {
103
128
  meta: { nameText: '虹吸组件\n单海报/整页', },
129
+ name: 'operator-虹吸组件\n单海报/整页',
104
130
  path: '/operator/Genie',
105
131
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Genie/App.vue'),
106
132
  },
107
133
  {
108
134
  meta: { nameText: '漩涡组件\n单海报/整页', },
135
+ name: 'operator-漩涡组件\n单海报/整页',
109
136
  path: '/operator/Vortex',
110
137
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Vortex/App.vue'),
111
138
  },
112
139
  {
113
- meta: { nameText: '翻书组件(整体页面)', },
140
+ meta: { nameText: '翻页效果(整体页面)', },
141
+ name: 'operator-翻页效果(整体页面)',
114
142
  path: '/operator/FlipPage',
115
143
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/FlipPage/App.vue'),
116
144
  },
117
145
  {
118
146
  meta: { nameText: '水波组件', },
147
+ name: 'operator-水波组件',
119
148
  path: '/operator/Ripple',
120
149
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Ripple/App.vue'),
121
150
  },
122
151
  {
123
152
  meta: { nameText: '粒子喷洒组件', },
153
+ name: 'operator-粒子喷洒组件',
124
154
  path: '/operator/Particle',
125
155
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Particle/App.vue'),
126
156
  },
127
157
  {
128
158
  meta: { nameText: '剧集列表', },
159
+ name: 'operator-剧集列表',
129
160
  path: '/operator/EpisodeList',
130
161
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/EpisodeList/App.vue'),
131
162
  },
132
163
  {
133
164
  meta: { nameText: 'tab-content', },
165
+ name: 'operator-tab-content',
134
166
  path: '/operator/TabContent',
135
167
  component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/TabContent/App.vue'),
136
168
  },
137
169
  {
138
170
  meta: { nameText: '虚线框', },
171
+ name: 'operator-虚线框',
139
172
  path: '/operator/DashPath',
140
173
  component: () => import('@shijiu/jsview-vue-samples/DashPath/AppForOperator.vue'),
141
174
  },
175
+ {
176
+ meta: { nameText: '翻书', },
177
+ name: 'operator-翻书',
178
+ path: '/operator/BookFlip',
179
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/BookFlip/App.vue'),
180
+ },
181
+ {
182
+ meta: { nameText: '模糊弹出框', },
183
+ name: 'operator-模糊弹出框',
184
+ path: '/operator/BlurPopup',
185
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Blur/BlurPopup/BlurPopup.vue'),
186
+ },
187
+ {
188
+ meta: { nameText: '模糊进出', },
189
+ name: 'operator-模糊进出',
190
+ path: '/operator/BlurInOut',
191
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Blur/BlurInOut/BlurInOut.vue'),
192
+ },
193
+ {
194
+ meta: { nameText: '主色调', },
195
+ name: 'operator-主色调',
196
+ path: '/operator/DominantColor',
197
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/DominantColor/App.vue'),
198
+ },
199
+ {
200
+ meta: { nameText: '轮播图', },
201
+ name: 'operator-轮播图',
202
+ path: '/operator/Swiper',
203
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Swiper/App.vue'),
204
+ },
205
+ {
206
+ meta: { nameText: '点击动画', },
207
+ name: 'operator-点击动画',
208
+ path: '/operator/ClickSpriteAnim',
209
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/ClickSpriteAnim/App.vue'),
210
+ },
211
+ {
212
+ meta: { nameText: '平滑轮播图', },
213
+ name: 'operator-平滑轮播图',
214
+ path: '/operator/SmoothSwiper',
215
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/SmoothSwiper/App.vue'),
216
+ },
217
+ {
218
+ meta: { nameText: '纵向爬虫', },
219
+ name: 'operator-纵向爬虫',
220
+ path: '/operator/TabContentVertical',
221
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/TabContentVertical/App.vue'),
222
+ },
223
+ {
224
+ meta: { nameText: '声音-跳动', },
225
+ name: 'operator-声音-跳动',
226
+ path: '/operator/Sound_Bounce',
227
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Sound/Bounce/App.vue'),
228
+ },
229
+ {
230
+ meta: { nameText: '声音-下雨', },
231
+ name: 'operator-声音-下雨',
232
+ path: '/operator/Sound_Rain',
233
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Sound/Rain/App.vue'),
234
+ },
235
+ {
236
+ meta: { nameText: '声音-焦点移动', },
237
+ name: 'operator-声音-焦点移动',
238
+ path: '/operator/Sound_FocusMove',
239
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Sound/FocusMove/App.vue'),
240
+ },
241
+ {
242
+ meta: { nameText: 'resize', },
243
+ name: 'operator-resize',
244
+ path: '/operator/Resize',
245
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/Resize/App.vue'),
246
+ },
247
+ {
248
+ meta: { nameText: '截图缩放', },
249
+ name: 'operator-截图缩放',
250
+ path: '/operator/ScreenShootScale',
251
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/ScreenShootScale/App.vue'),
252
+ },
253
+ {
254
+ meta: { nameText: '长聊天框', },
255
+ name: 'operator-长聊天框',
256
+ path: '/operator/LongChatBox',
257
+ component: () => import('@shijiu/jsview-vue-samples/DemoForOperator/LongChatBox/App.vue'),
258
+ }
142
259
  ]
@@ -61,6 +61,17 @@ const onClick = () => {
61
61
  props.onAction.register("onFocus", onFocus);
62
62
  props.onAction.register("onBlur", onBlur);
63
63
  props.onAction.register("onClick", onClick);
64
+ props.onAction.register("onLongPress", () => {
65
+ console.log("onLongPress");
66
+ });
67
+ props.onAction.register("onGaze", () => {
68
+ console.log("onGaze", props.data);
69
+ });
70
+ props.onAction.register("onIgnore", () => {
71
+ touchModeSwitcherRef.value.unregisterCallback(modeChangeCallback);
72
+ focused.value = false;
73
+ });
74
+
64
75
  </script>
65
76
 
66
77
  <template>