@shijiu/jsview-vue 0.9.246 → 0.9.254

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 (173) 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 +6 -6
  7. package/patches/node_modules/@babel/preset-env/lib/available-plugins.js +218 -218
  8. package/patches/node_modules/@vue/cli-plugin-typescript/index.js +100 -100
  9. package/patches/node_modules/@vue/cli-service/lib/commands/serve.js +395 -395
  10. package/patches/node_modules/@vue/cli-service/lib/config/app.js +272 -272
  11. package/patches/node_modules/@vue/cli-service/lib/config/assets.js +70 -70
  12. package/patches/node_modules/@vue/cli-service/lib/config/base.js +212 -212
  13. package/patches/node_modules/postcss-js/objectifier.js +90 -90
  14. package/patches/node_modules/vue-loader/dist/resolveScript.js +70 -70
  15. package/samples/AdvanceMetroWidget/App.vue +122 -122
  16. package/samples/AdvanceMetroWidget/Frame.vue +100 -100
  17. package/samples/AdvanceMetroWidget/Item.vue +57 -57
  18. package/samples/AdvanceMetroWidget/data.js +136 -136
  19. package/samples/AnimPicture/App.vue +223 -223
  20. package/samples/Basic/App.vue +128 -128
  21. package/samples/Basic/components/TitleBar.vue +28 -28
  22. package/samples/Basic/components/anim/AnimGroup.vue +67 -67
  23. package/samples/Basic/components/anim/AnimKeyframeBasic.vue +101 -101
  24. package/samples/Basic/components/anim/AnimKeyframeComposite.vue +52 -52
  25. package/samples/Basic/components/anim/AnimTransition.vue +116 -116
  26. package/samples/Basic/components/div/DivBackground.vue +14 -14
  27. package/samples/Basic/components/div/DivClip.vue +80 -80
  28. package/samples/Basic/components/div/DivCssScoped.vue +26 -26
  29. package/samples/Basic/components/div/DivCssVar.vue +49 -49
  30. package/samples/Basic/components/div/DivGroup1.vue +32 -32
  31. package/samples/Basic/components/div/DivGroup2.vue +40 -40
  32. package/samples/Basic/components/div/DivLayout.vue +11 -11
  33. package/samples/Basic/components/div/DivRadius.vue +46 -46
  34. package/samples/Basic/components/text/TextAlign.vue +47 -47
  35. package/samples/Basic/components/text/TextFontStyle.vue +57 -57
  36. package/samples/Basic/components/text/TextGroup.vue +31 -31
  37. package/samples/Basic/components/text/TextOverflow.vue +77 -77
  38. package/samples/BasicFocusControl/App.vue +124 -124
  39. package/samples/BasicFocusControl/components/BaseBlock.vue +50 -50
  40. package/samples/BasicFocusControl/components/MainArea.vue +97 -97
  41. package/samples/BasicFocusControl/components/MainAreaLeftBlock.vue +20 -20
  42. package/samples/BasicFocusControl/components/MainAreaRightBlock.vue +29 -29
  43. package/samples/BasicFocusControl/components/SideBar.vue +72 -72
  44. package/samples/BasicFocusControl/components/SideBarBlock.vue +29 -29
  45. package/samples/ClassNameDemo/App.vue +119 -119
  46. package/samples/ClassNameDemo/components/ContentItem.vue +252 -252
  47. package/samples/ClassNameDemo/components/LoadingView.vue +43 -43
  48. package/samples/ClassNameDemo/components/TitleView.vue +24 -24
  49. package/samples/ClassNameDemo/data.js +24 -24
  50. package/samples/ColorSpace/App.vue +134 -134
  51. package/samples/DemoHomepage/App.vue +31 -31
  52. package/samples/DemoHomepage/components/BodyFrame.vue +81 -81
  53. package/samples/DemoHomepage/components/Dialog.vue +93 -93
  54. package/samples/DemoHomepage/components/Item.vue +76 -76
  55. package/samples/DemoHomepage/components/TabFrame.vue +86 -86
  56. package/samples/DemoHomepage/router.js +132 -132
  57. package/samples/DemoHomepage/views/Homepage.vue +186 -186
  58. package/samples/FlipCard/App.vue +80 -80
  59. package/samples/FlipCard/FlipCard.vue +123 -123
  60. package/samples/FlipCard/data.js +12 -12
  61. package/samples/FlowMultiWidget/App.vue +90 -90
  62. package/samples/FlowMultiWidget/components/Block.vue +106 -106
  63. package/samples/FlowMultiWidget/components/FlowPage.vue +59 -59
  64. package/samples/FlowMultiWidget/components/Item.vue +102 -102
  65. package/samples/FlowMultiWidget/components/MenuItem.vue +71 -71
  66. package/samples/FlowMultiWidget/components/MyMenu.vue +89 -89
  67. package/samples/FlowMultiWidget/data.js +446 -446
  68. package/samples/HashHistory/App.vue +124 -124
  69. package/samples/HashHistory/components/HorizontalButtonList.vue +113 -113
  70. package/samples/HashHistory/components/Item.vue +73 -73
  71. package/samples/HashHistory/router.js +29 -29
  72. package/samples/HashHistory/views/BasePage.vue +18 -18
  73. package/samples/HashHistory/views/MainPage.vue +67 -67
  74. package/samples/HashHistory/views/SubPage.vue +78 -78
  75. package/samples/HashHistory/views/SubPageFirst.vue +9 -9
  76. package/samples/HashHistory/views/SubPageSecond.vue +9 -9
  77. package/samples/LongImage/App.vue +96 -96
  78. package/samples/LongImage/Button.vue +153 -153
  79. package/samples/LongImage/LongImageScroll.vue +126 -126
  80. package/samples/LongImage/Scroll.vue +15 -15
  81. package/samples/LongText/App.vue +111 -111
  82. package/samples/LongText/Button.vue +153 -153
  83. package/samples/LongText/LongTextScroll.vue +224 -224
  84. package/samples/LongText/Scroll.vue +15 -15
  85. package/samples/Preload/App.vue +145 -145
  86. package/samples/Preload/data.js +22 -22
  87. package/samples/Preload/preloadItem.vue +21 -21
  88. package/samples/QrcodeDemo/App.vue +72 -72
  89. package/samples/SimpleWidgetDemo/App.vue +203 -203
  90. package/samples/SimpleWidgetDemo/Item.vue +82 -82
  91. package/samples/SimpleWidgetDemo/components/ContentItem.vue +411 -411
  92. package/samples/SimpleWidgetDemo/components/MyTab.vue +116 -116
  93. package/samples/SimpleWidgetDemo/data.js +110 -110
  94. package/samples/SprayView/App.vue +269 -269
  95. package/samples/SpriteImage/App.vue +174 -174
  96. package/samples/SpriteImage/images/egg_break.json +116 -116
  97. package/samples/TextBox/App.vue +178 -178
  98. package/samples/TextBox/RenderCenter.vue +108 -108
  99. package/samples/TextBox/RenderLeft.vue +108 -108
  100. package/samples/TextBox/RenderOneLine.vue +119 -119
  101. package/samples/TextBox/RenderRight.vue +106 -106
  102. package/samples/TextShadowDemo/App.vue +97 -97
  103. package/samples/TextureSize/App.vue +141 -141
  104. package/samples/ThrowMoveDemo/AccelerateDemo.vue +117 -117
  105. package/samples/ThrowMoveDemo/App.vue +113 -113
  106. package/samples/ThrowMoveDemo/LRParabolicDemo.vue +115 -115
  107. package/samples/ThrowMoveDemo/TargetDemo.vue +116 -116
  108. package/samples/ThrowMoveDemo/UDParabolicDemo.vue +121 -121
  109. package/samples/TransitPage/App.vue +40 -40
  110. package/samples/VideoDemo/App.vue +137 -137
  111. package/samples/VideoDemo/components/Button.vue +68 -68
  112. package/samples/VideoDemo/components/Controllor.vue +195 -195
  113. package/samples/VideoDemo/components/VideoFrame.vue +152 -152
  114. package/scripts/common.js +115 -92
  115. package/scripts/deploy-fast-pack.js +17 -0
  116. package/scripts/deploy-fast-publish.js +44 -0
  117. package/scripts/{git-commit-empty.js → deploy-git-commit-empty.js} +21 -21
  118. package/scripts/{pre-pack.js → deploy-prepare.js} +56 -39
  119. package/scripts/{install-local-packages.js → jsview-install-local-packages.js} +73 -73
  120. package/scripts/{post-build.js → jsview-post-build.js} +127 -127
  121. package/scripts/{post-install.js → jsview-post-install.js} +78 -78
  122. package/scripts/{run-android.js → jsview-run-android.js} +64 -64
  123. package/scripts/make-js.sh +181 -181
  124. package/utils/JsViewEngineWidget/bin/index.js +1 -1
  125. package/utils/JsViewEngineWidget/bin/package.json +11 -11
  126. package/utils/JsViewVueTools/JsvHashHistory.js +111 -111
  127. package/utils/JsViewVueTools/JsvRuntimeBridge.js +417 -417
  128. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +80 -80
  129. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserQrcode.vue +147 -147
  130. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserSpray.vue +54 -54
  131. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/ApicDataBase.js +28 -28
  132. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/BrowserApic.vue +123 -123
  133. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/GifData.js +83 -83
  134. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/LoopToolBase.js +25 -25
  135. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/NormalLoopTool.js +61 -61
  136. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/PartLoopTool.js +119 -119
  137. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/Viewer.js +106 -106
  138. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/WebpData.js +141 -141
  139. package/utils/JsViewVueWidget/BrowserDebugWidget/WidgetLoader.js +20 -20
  140. package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +204 -204
  141. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +63 -63
  142. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +426 -426
  143. package/utils/JsViewVueWidget/JsvActorMove/index.js +12 -12
  144. package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +178 -178
  145. package/utils/JsViewVueWidget/JsvApic/index.js +17 -17
  146. package/utils/JsViewVueWidget/JsvMarquee.vue +196 -196
  147. package/utils/JsViewVueWidget/JsvNinePatch.vue +76 -76
  148. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +350 -350
  149. package/utils/JsViewVueWidget/JsvPreload/index.js +21 -21
  150. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +140 -140
  151. package/utils/JsViewVueWidget/JsvQrcode/index.js +18 -18
  152. package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +139 -139
  153. package/utils/JsViewVueWidget/JsvSpray/index.js +14 -14
  154. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +447 -447
  155. package/utils/JsViewVueWidget/JsvSpriteAnim/SpriteController.js +56 -56
  156. package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +6 -6
  157. package/utils/JsViewVueWidget/JsvSwiper/Indicator.vue +34 -34
  158. package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +494 -494
  159. package/utils/JsViewVueWidget/JsvSwiper/index.js +9 -9
  160. package/utils/JsViewVueWidget/JsvSwiper3D/Indicator.vue +34 -34
  161. package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +403 -403
  162. package/utils/JsViewVueWidget/JsvSwiper3D/index.js +9 -9
  163. package/utils/JsViewVueWidget/JsvTextBox.vue +110 -110
  164. package/utils/JsViewVueWidget/JsvVideo.vue +35 -35
  165. package/vetur.config.js +5 -5
  166. package/.gitmodules +0 -6
  167. package/README.md +0 -15
  168. package/doc/IMPORT_CHANGE_LOG.txt +0 -3
  169. package/doc/about-project-postinstall.md +0 -0
  170. package/doc/git_commit.md +0 -15
  171. package/doc/test_version_up.txt +0 -1
  172. package/scripts/update-version.js +0 -32
  173. package/shijiu-jsview-vue-0.9.246.tgz +0 -0
@@ -1,197 +1,197 @@
1
- <script>
2
- import { Forge } from "../../dom/jsv-forge-define";
3
- import {
4
- JsvStyleClass,
5
- JsvTextStyleClass,
6
- combinedStyles,
7
- } from "../JsViewVueTools/JsvStyleClass";
8
- export default {
9
- props: {
10
- text: {
11
- type: String,
12
- default: "",
13
- },
14
- layoutStyles: {
15
- type: Array,
16
- default: () => [this.sDefaultLayoutStyle],
17
- },
18
- fontStyles: {
19
- type: Array,
20
- default: () => [this.sDefaultFontStyle],
21
- },
22
- styleToken: String,
23
- slideSpeed: {
24
- // 60px per second
25
- type: Number,
26
- default: 60,
27
- },
28
- forceSlide: {
29
- type: Boolean,
30
- default: false,
31
- },
32
- },
33
- data() {
34
- return {
35
- asyncTextLenTimer: -1,
36
- rollTimeId: -1,
37
- animationCount: 0,
38
- LayoutStyle: null,
39
- FontStyle: null,
40
- FontStyleClass: null,
41
- TokenProcessed: null,
42
- sDefaultLayoutStyle: new JsvStyleClass({
43
- left: 0,
44
- top: 0,
45
- width: 0,
46
- height: 20,
47
- }),
48
- sDefaultFontStyle: new JsvTextStyleClass({
49
- color: "rgba(255,255,255,1.0)",
50
- fontSize: 10,
51
- textAlign: "center",
52
- lineHeight: "20px",
53
- }),
54
- sCommonFontStyle: new JsvTextStyleClass({
55
- whiteSpace: "nowrap",
56
- }),
57
- };
58
- },
59
- methods: {
60
- _asyncStartSlider() {
61
- // 清理之前的Slider处理
62
- this._resetSlider();
63
-
64
- // 稍进行延迟,以等待JsView的native端描绘文字并回传文字宽度
65
- if (this.asyncTextLenTimer < 0) {
66
- this.asyncTextLenTimer = setTimeout(() => {
67
- if (
68
- this.forceSlide ||
69
- this.$refs.textRef.clientWidth > this.LayoutStyle.width
70
- ) {
71
- this._slideNextStep();
72
- }
73
- this.asyncTextLenTimer = -1;
74
- }, 500);
75
- }
76
- },
77
- _resetSlider() {
78
- if (this.rollTimeId >= 0) {
79
- clearTimeout(this.rollTimeId);
80
- this.rollTimeId = -1;
81
- }
82
- this.animationCount = 0;
83
- this.$refs.sliderRef?.jsvMaskView?.StopAnimation();
84
- },
85
- _slideNextStep() {
86
- const text_width = this.$refs.textRef.clientWidth;
87
- if (this.animationCount % 2 === 0) {
88
- // 文字从原始位置,向左移动出屏幕(每次完整移动,停顿1秒)
89
- this.rollTimeId = setTimeout(() => {
90
- this.rollTimeId = -1;
91
- const anim = new Forge.TranslateFrameAnimation(
92
- 0,
93
- -text_width,
94
- this.$props.slideSpeed,
95
- true,
96
- 0,
97
- 0
98
- );
99
- anim.SetAnimationListener(
100
- new Forge.AnimationListener(
101
- null,
102
- (ended) => {
103
- if (ended) {
104
- // 正常结束,非Cancel时,进行下一个动作
105
- this._slideNextStep();
106
- }
107
- },
108
- null
109
- )
110
- );
111
- anim.Enable(Forge.AnimationEnable.ReleaseAfterEndCallback);
112
- this.$refs.sliderRef.jsvMaskView.StartAnimation(anim);
113
- this.animationCount += 1;
114
- }, 1000);
115
- } else {
116
- // 文字从右边屏幕外部,移动回屏幕中的文字原始位置
117
- const anim = new Forge.TranslateFrameAnimation(
118
- this.LayoutStyle.width,
119
- 0,
120
- this.$props.slideSpeed,
121
- true,
122
- this.LayoutStyle.width,
123
- 0
124
- );
125
- anim.SetAnimationListener(
126
- new Forge.AnimationListener(
127
- null,
128
- (ended) => {
129
- if (ended) {
130
- // 正常结束,非Cancel时,进行下一个动作
131
- this._slideNextStep();
132
- }
133
- },
134
- null
135
- )
136
- );
137
- this.$refs.sliderRef.jsvMaskView.StartAnimation(anim);
138
- this.animationCount += 1;
139
- }
140
- },
141
- _AnalyzeStyleChange() {
142
- if (this.$props.styleToken !== this.TokenProcessed) {
143
- // Token变化时,重新解析style array
144
- const layout_set = combinedStyles(this.$props.layoutStyles, true);
145
- const font_set = combinedStyles([
146
- ...this.$props.fontStyles,
147
- this.sCommonFontStyle,
148
- ]);
149
- this.LayoutStyle = layout_set.combinedStyle;
150
- this.FontStyle = font_set.combinedStyle;
151
- this.FontStyleClass = font_set.combinedClass;
152
- if (this.FontStyleClass.length === 0) {
153
- this.FontStyleClass = null;
154
- }
155
- this.TokenProcessed = this.$props.styleToken;
156
- }
157
- },
158
- },
159
- created() {
160
- this._AnalyzeStyleChange();
161
- },
162
- mounted() {
163
- this._asyncStartSlider();
164
- },
165
- unmounted() {
166
- // 清理所有异步处理,并停止Slider动作
167
- if (this.asyncTextLenTimer >= 0) {
168
- clearTimeout(this.asyncTextLenTimer);
169
- this.asyncTextLenTimer = -1;
170
- }
171
- this._resetSlider();
172
- },
173
- };
174
- </script>
175
-
176
- <template>
177
- <div :style="{ ...this.LayoutStyle, overflow: 'hidden' }">
178
- <div
179
- ref="sliderRef"
180
- :style="{
181
- left: 0,
182
- top: 0,
183
- width: this.LayoutStyle.width,
184
- height: this.LayoutStyle.height,
185
- }"
186
- >
187
- <div
188
- ref="textRef"
189
- :className="this.FontStyleClass"
190
- :style="{ ...this.FontStyle, height: this.LayoutStyle.height }"
191
- :jsv_text_align_minwidth="this.LayoutStyle.width"
192
- >
193
- {{ this.$props.text }}
194
- </div>
195
- </div>
196
- </div>
1
+ <script>
2
+ import { Forge } from "../../dom/jsv-forge-define";
3
+ import {
4
+ JsvStyleClass,
5
+ JsvTextStyleClass,
6
+ combinedStyles,
7
+ } from "../JsViewVueTools/JsvStyleClass";
8
+ export default {
9
+ props: {
10
+ text: {
11
+ type: String,
12
+ default: "",
13
+ },
14
+ layoutStyles: {
15
+ type: Array,
16
+ default: () => [this.sDefaultLayoutStyle],
17
+ },
18
+ fontStyles: {
19
+ type: Array,
20
+ default: () => [this.sDefaultFontStyle],
21
+ },
22
+ styleToken: String,
23
+ slideSpeed: {
24
+ // 60px per second
25
+ type: Number,
26
+ default: 60,
27
+ },
28
+ forceSlide: {
29
+ type: Boolean,
30
+ default: false,
31
+ },
32
+ },
33
+ data() {
34
+ return {
35
+ asyncTextLenTimer: -1,
36
+ rollTimeId: -1,
37
+ animationCount: 0,
38
+ LayoutStyle: null,
39
+ FontStyle: null,
40
+ FontStyleClass: null,
41
+ TokenProcessed: null,
42
+ sDefaultLayoutStyle: new JsvStyleClass({
43
+ left: 0,
44
+ top: 0,
45
+ width: 0,
46
+ height: 20,
47
+ }),
48
+ sDefaultFontStyle: new JsvTextStyleClass({
49
+ color: "rgba(255,255,255,1.0)",
50
+ fontSize: 10,
51
+ textAlign: "center",
52
+ lineHeight: "20px",
53
+ }),
54
+ sCommonFontStyle: new JsvTextStyleClass({
55
+ whiteSpace: "nowrap",
56
+ }),
57
+ };
58
+ },
59
+ methods: {
60
+ _asyncStartSlider() {
61
+ // 清理之前的Slider处理
62
+ this._resetSlider();
63
+
64
+ // 稍进行延迟,以等待JsView的native端描绘文字并回传文字宽度
65
+ if (this.asyncTextLenTimer < 0) {
66
+ this.asyncTextLenTimer = setTimeout(() => {
67
+ if (
68
+ this.forceSlide ||
69
+ this.$refs.textRef.clientWidth > this.LayoutStyle.width
70
+ ) {
71
+ this._slideNextStep();
72
+ }
73
+ this.asyncTextLenTimer = -1;
74
+ }, 500);
75
+ }
76
+ },
77
+ _resetSlider() {
78
+ if (this.rollTimeId >= 0) {
79
+ clearTimeout(this.rollTimeId);
80
+ this.rollTimeId = -1;
81
+ }
82
+ this.animationCount = 0;
83
+ this.$refs.sliderRef?.jsvMaskView?.StopAnimation();
84
+ },
85
+ _slideNextStep() {
86
+ const text_width = this.$refs.textRef.clientWidth;
87
+ if (this.animationCount % 2 === 0) {
88
+ // 文字从原始位置,向左移动出屏幕(每次完整移动,停顿1秒)
89
+ this.rollTimeId = setTimeout(() => {
90
+ this.rollTimeId = -1;
91
+ const anim = new Forge.TranslateFrameAnimation(
92
+ 0,
93
+ -text_width,
94
+ this.$props.slideSpeed,
95
+ true,
96
+ 0,
97
+ 0
98
+ );
99
+ anim.SetAnimationListener(
100
+ new Forge.AnimationListener(
101
+ null,
102
+ (ended) => {
103
+ if (ended) {
104
+ // 正常结束,非Cancel时,进行下一个动作
105
+ this._slideNextStep();
106
+ }
107
+ },
108
+ null
109
+ )
110
+ );
111
+ anim.Enable(Forge.AnimationEnable.ReleaseAfterEndCallback);
112
+ this.$refs.sliderRef.jsvMaskView.StartAnimation(anim);
113
+ this.animationCount += 1;
114
+ }, 1000);
115
+ } else {
116
+ // 文字从右边屏幕外部,移动回屏幕中的文字原始位置
117
+ const anim = new Forge.TranslateFrameAnimation(
118
+ this.LayoutStyle.width,
119
+ 0,
120
+ this.$props.slideSpeed,
121
+ true,
122
+ this.LayoutStyle.width,
123
+ 0
124
+ );
125
+ anim.SetAnimationListener(
126
+ new Forge.AnimationListener(
127
+ null,
128
+ (ended) => {
129
+ if (ended) {
130
+ // 正常结束,非Cancel时,进行下一个动作
131
+ this._slideNextStep();
132
+ }
133
+ },
134
+ null
135
+ )
136
+ );
137
+ this.$refs.sliderRef.jsvMaskView.StartAnimation(anim);
138
+ this.animationCount += 1;
139
+ }
140
+ },
141
+ _AnalyzeStyleChange() {
142
+ if (this.$props.styleToken !== this.TokenProcessed) {
143
+ // Token变化时,重新解析style array
144
+ const layout_set = combinedStyles(this.$props.layoutStyles, true);
145
+ const font_set = combinedStyles([
146
+ ...this.$props.fontStyles,
147
+ this.sCommonFontStyle,
148
+ ]);
149
+ this.LayoutStyle = layout_set.combinedStyle;
150
+ this.FontStyle = font_set.combinedStyle;
151
+ this.FontStyleClass = font_set.combinedClass;
152
+ if (this.FontStyleClass.length === 0) {
153
+ this.FontStyleClass = null;
154
+ }
155
+ this.TokenProcessed = this.$props.styleToken;
156
+ }
157
+ },
158
+ },
159
+ created() {
160
+ this._AnalyzeStyleChange();
161
+ },
162
+ mounted() {
163
+ this._asyncStartSlider();
164
+ },
165
+ unmounted() {
166
+ // 清理所有异步处理,并停止Slider动作
167
+ if (this.asyncTextLenTimer >= 0) {
168
+ clearTimeout(this.asyncTextLenTimer);
169
+ this.asyncTextLenTimer = -1;
170
+ }
171
+ this._resetSlider();
172
+ },
173
+ };
174
+ </script>
175
+
176
+ <template>
177
+ <div :style="{ ...this.LayoutStyle, overflow: 'hidden' }">
178
+ <div
179
+ ref="sliderRef"
180
+ :style="{
181
+ left: 0,
182
+ top: 0,
183
+ width: this.LayoutStyle.width,
184
+ height: this.LayoutStyle.height,
185
+ }"
186
+ >
187
+ <div
188
+ ref="textRef"
189
+ :className="this.FontStyleClass"
190
+ :style="{ ...this.FontStyle, height: this.LayoutStyle.height }"
191
+ :jsv_text_align_minwidth="this.LayoutStyle.width"
192
+ >
193
+ {{ this.$props.text }}
194
+ </div>
195
+ </div>
196
+ </div>
197
197
  </template>
@@ -1,76 +1,76 @@
1
- <!--
2
- * 【模块 export 内容】
3
- * JsvNinePatch:Vue高阶组件,.9图展示控件,该控件的原图要求为正方形,延展后可为长方形
4
- * props说明:
5
- * style {Object} 同div的Style,通过width/height来控制.9图片延展后的显示尺寸,另外通过top/left控制坐标
6
- * imageUrl {String} (必填)显示图片的加载地址
7
- * imageWidth {int} (必填)原图信息: 原图的宽度(由于正方形,宽高相同)
8
- * contentWidth {int} (必填)原图信息: 原图内用来装内容区域的宽度(由于正方形,宽高相同)
9
- * borderOutset {int} 在目标显示中,边框的显示宽度,默认值为0(由于正方形,宽高相同),
10
- * 边框显示在目标区域的外缘,而非内缘
11
- * animTime {int} (必填)缩放动画的时长(单位毫秒)
12
- * waitForInit {boolean} 尺寸为0时是否进行描画(例如: 首次显示不展示动画的场合,设置为true),默认值为true
13
- -->
14
-
15
- <script>
16
- export default {
17
- name: "JsvNinePatch",
18
- props: {
19
- style: {
20
- type: Object,
21
- default: () => {
22
- return {};
23
- },
24
- },
25
- top: { type: Number, default: 0 },
26
- left: { type: Number, default: 0 },
27
- borderOutset: { type: Number, default: 0 },
28
- waitForInit: { type: Boolean, default: true },
29
-
30
- imageUrl: String,
31
- imageWidth: Number,
32
- contentWidth: Number,
33
- animTime: Number,
34
- },
35
-
36
- methods: {
37
- isReady() {
38
- if (!this.waitForInit) {
39
- return true;
40
- }
41
-
42
- return this.style && this.style.width !== 0 && this.style.height !== 0;
43
- },
44
- getTransition() {
45
- let transition = "";
46
- if (this.animTime) {
47
- transition = `left ${this.animTime}s, top ${this.animTime}s, width ${this.animTime}s, height ${this.animTime}s`;
48
- }
49
-
50
- return transition;
51
- },
52
- },
53
-
54
- data() {
55
- return {
56
- sliceWidth: Math.ceil((this.imageWidth - this.contentWidth) / 2),
57
- };
58
- },
59
- };
60
- </script>
61
-
62
- <template>
63
- <div
64
- v-if="isReady"
65
- :style="{
66
- ...style,
67
- transition: getTransition(),
68
- borderImage: `url(${imageUrl}) ${sliceWidth} fill`,
69
- borderImageWidth: `${sliceWidth}px`,
70
- borderImageOutset: `${borderOutset}px`,
71
- }"
72
- />
73
- </template>
74
-
75
- <style scoped>
76
- </style>
1
+ <!--
2
+ * 【模块 export 内容】
3
+ * JsvNinePatch:Vue高阶组件,.9图展示控件,该控件的原图要求为正方形,延展后可为长方形
4
+ * props说明:
5
+ * style {Object} 同div的Style,通过width/height来控制.9图片延展后的显示尺寸,另外通过top/left控制坐标
6
+ * imageUrl {String} (必填)显示图片的加载地址
7
+ * imageWidth {int} (必填)原图信息: 原图的宽度(由于正方形,宽高相同)
8
+ * contentWidth {int} (必填)原图信息: 原图内用来装内容区域的宽度(由于正方形,宽高相同)
9
+ * borderOutset {int} 在目标显示中,边框的显示宽度,默认值为0(由于正方形,宽高相同),
10
+ * 边框显示在目标区域的外缘,而非内缘
11
+ * animTime {int} (必填)缩放动画的时长(单位毫秒)
12
+ * waitForInit {boolean} 尺寸为0时是否进行描画(例如: 首次显示不展示动画的场合,设置为true),默认值为true
13
+ -->
14
+
15
+ <script>
16
+ export default {
17
+ name: "JsvNinePatch",
18
+ props: {
19
+ style: {
20
+ type: Object,
21
+ default: () => {
22
+ return {};
23
+ },
24
+ },
25
+ top: { type: Number, default: 0 },
26
+ left: { type: Number, default: 0 },
27
+ borderOutset: { type: Number, default: 0 },
28
+ waitForInit: { type: Boolean, default: true },
29
+
30
+ imageUrl: String,
31
+ imageWidth: Number,
32
+ contentWidth: Number,
33
+ animTime: Number,
34
+ },
35
+
36
+ methods: {
37
+ isReady() {
38
+ if (!this.waitForInit) {
39
+ return true;
40
+ }
41
+
42
+ return this.style && this.style.width !== 0 && this.style.height !== 0;
43
+ },
44
+ getTransition() {
45
+ let transition = "";
46
+ if (this.animTime) {
47
+ transition = `left ${this.animTime}s, top ${this.animTime}s, width ${this.animTime}s, height ${this.animTime}s`;
48
+ }
49
+
50
+ return transition;
51
+ },
52
+ },
53
+
54
+ data() {
55
+ return {
56
+ sliceWidth: Math.ceil((this.imageWidth - this.contentWidth) / 2),
57
+ };
58
+ },
59
+ };
60
+ </script>
61
+
62
+ <template>
63
+ <div
64
+ v-if="isReady"
65
+ :style="{
66
+ ...style,
67
+ transition: getTransition(),
68
+ borderImage: `url(${imageUrl}) ${sliceWidth} fill`,
69
+ borderImageWidth: `${sliceWidth}px`,
70
+ borderImageOutset: `${borderOutset}px`,
71
+ }"
72
+ />
73
+ </template>
74
+
75
+ <style scoped>
76
+ </style>