@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.
- package/dom/bin/package.json +11 -11
- package/dom/browser-root-style.css +21 -21
- package/loader/jsview-main.js +41 -41
- package/loader/jsview.config.default.js +37 -37
- package/loader/jsview.default.config.js +37 -37
- package/package.json +1 -5
- package/samples/AdvanceMetroWidget/App.vue +122 -122
- package/samples/AdvanceMetroWidget/Frame.vue +100 -100
- package/samples/AdvanceMetroWidget/Item.vue +57 -57
- package/samples/AdvanceMetroWidget/data.js +136 -136
- package/samples/AnimPicture/App.vue +223 -223
- package/samples/Basic/App.vue +128 -128
- package/samples/Basic/components/TitleBar.vue +28 -28
- package/samples/Basic/components/anim/AnimGroup.vue +67 -67
- package/samples/Basic/components/anim/AnimKeyframeBasic.vue +101 -101
- package/samples/Basic/components/anim/AnimKeyframeComposite.vue +52 -52
- package/samples/Basic/components/anim/AnimTransition.vue +116 -116
- package/samples/Basic/components/div/DivBackground.vue +14 -14
- package/samples/Basic/components/div/DivClip.vue +80 -80
- package/samples/Basic/components/div/DivCssScoped.vue +26 -26
- package/samples/Basic/components/div/DivCssVar.vue +49 -49
- package/samples/Basic/components/div/DivGroup1.vue +32 -32
- package/samples/Basic/components/div/DivGroup2.vue +40 -40
- package/samples/Basic/components/div/DivLayout.vue +11 -11
- package/samples/Basic/components/div/DivRadius.vue +46 -46
- package/samples/Basic/components/text/TextAlign.vue +47 -47
- package/samples/Basic/components/text/TextFontStyle.vue +57 -57
- package/samples/Basic/components/text/TextGroup.vue +31 -31
- package/samples/Basic/components/text/TextOverflow.vue +77 -77
- package/samples/BasicFocusControl/App.vue +124 -124
- package/samples/BasicFocusControl/components/BaseBlock.vue +50 -50
- package/samples/BasicFocusControl/components/MainArea.vue +97 -97
- package/samples/BasicFocusControl/components/MainAreaLeftBlock.vue +20 -20
- package/samples/BasicFocusControl/components/MainAreaRightBlock.vue +29 -29
- package/samples/BasicFocusControl/components/SideBar.vue +72 -72
- package/samples/BasicFocusControl/components/SideBarBlock.vue +29 -29
- package/samples/ClassNameDemo/App.vue +119 -119
- package/samples/ClassNameDemo/components/ContentItem.vue +252 -252
- package/samples/ClassNameDemo/components/LoadingView.vue +43 -43
- package/samples/ClassNameDemo/components/TitleView.vue +24 -24
- package/samples/ClassNameDemo/data.js +24 -24
- package/samples/ColorSpace/App.vue +134 -134
- package/samples/DemoHomepage/App.vue +31 -31
- package/samples/DemoHomepage/components/BodyFrame.vue +81 -81
- package/samples/DemoHomepage/components/Dialog.vue +93 -93
- package/samples/DemoHomepage/components/Item.vue +76 -76
- package/samples/DemoHomepage/components/TabFrame.vue +86 -86
- package/samples/DemoHomepage/router.js +132 -132
- package/samples/DemoHomepage/views/Homepage.vue +186 -186
- package/samples/FlipCard/App.vue +80 -80
- package/samples/FlipCard/FlipCard.vue +123 -123
- package/samples/FlipCard/data.js +12 -12
- package/samples/FlowMultiWidget/App.vue +90 -90
- package/samples/FlowMultiWidget/components/Block.vue +106 -106
- package/samples/FlowMultiWidget/components/FlowPage.vue +59 -59
- package/samples/FlowMultiWidget/components/Item.vue +102 -102
- package/samples/FlowMultiWidget/components/MenuItem.vue +71 -71
- package/samples/FlowMultiWidget/components/MyMenu.vue +89 -89
- package/samples/FlowMultiWidget/data.js +446 -446
- package/samples/HashHistory/App.vue +124 -124
- package/samples/HashHistory/components/HorizontalButtonList.vue +113 -113
- package/samples/HashHistory/components/Item.vue +73 -73
- package/samples/HashHistory/router.js +29 -29
- package/samples/HashHistory/views/BasePage.vue +18 -18
- package/samples/HashHistory/views/MainPage.vue +67 -67
- package/samples/HashHistory/views/SubPage.vue +78 -78
- package/samples/HashHistory/views/SubPageFirst.vue +9 -9
- package/samples/HashHistory/views/SubPageSecond.vue +9 -9
- package/samples/LongImage/App.vue +96 -96
- package/samples/LongImage/Button.vue +153 -153
- package/samples/LongImage/LongImageScroll.vue +126 -126
- package/samples/LongImage/Scroll.vue +15 -15
- package/samples/LongText/App.vue +111 -111
- package/samples/LongText/Button.vue +153 -153
- package/samples/LongText/LongTextScroll.vue +224 -224
- package/samples/LongText/Scroll.vue +15 -15
- package/samples/Preload/App.vue +145 -145
- package/samples/Preload/data.js +22 -22
- package/samples/Preload/preloadItem.vue +21 -21
- package/samples/QrcodeDemo/App.vue +72 -72
- package/samples/SimpleWidgetDemo/App.vue +203 -203
- package/samples/SimpleWidgetDemo/Item.vue +82 -82
- package/samples/SimpleWidgetDemo/components/ContentItem.vue +411 -411
- package/samples/SimpleWidgetDemo/components/MyTab.vue +116 -116
- package/samples/SimpleWidgetDemo/data.js +110 -110
- package/samples/SprayView/App.vue +269 -269
- package/samples/SpriteImage/App.vue +174 -174
- package/samples/SpriteImage/images/egg_break.json +116 -116
- package/samples/TextBox/App.vue +178 -178
- package/samples/TextBox/RenderCenter.vue +108 -108
- package/samples/TextBox/RenderLeft.vue +108 -108
- package/samples/TextBox/RenderOneLine.vue +119 -119
- package/samples/TextBox/RenderRight.vue +106 -106
- package/samples/TextShadowDemo/App.vue +97 -97
- package/samples/TextureSize/App.vue +141 -141
- package/samples/ThrowMoveDemo/AccelerateDemo.vue +117 -117
- package/samples/ThrowMoveDemo/App.vue +113 -113
- package/samples/ThrowMoveDemo/LRParabolicDemo.vue +115 -115
- package/samples/ThrowMoveDemo/TargetDemo.vue +116 -116
- package/samples/ThrowMoveDemo/UDParabolicDemo.vue +121 -121
- package/samples/TransitPage/App.vue +40 -40
- package/samples/VideoDemo/App.vue +137 -137
- package/samples/VideoDemo/components/Button.vue +68 -68
- package/samples/VideoDemo/components/Controllor.vue +195 -195
- package/samples/VideoDemo/components/VideoFrame.vue +152 -152
- package/scripts/common.js +57 -115
- package/scripts/jsview-install-local-packages.js +73 -73
- package/scripts/jsview-post-build.js +127 -127
- package/scripts/jsview-post-install.js +78 -78
- package/scripts/jsview-run-android.js +64 -64
- package/utils/JsViewEngineWidget/bin/index.js +1 -1
- package/utils/JsViewEngineWidget/bin/package.json +11 -11
- package/utils/JsViewVueTools/JsvHashHistory.js +111 -111
- package/utils/JsViewVueTools/JsvRuntimeBridge.js +417 -417
- package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +80 -80
- package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserQrcode.vue +147 -147
- package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserSpray.vue +54 -54
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/ApicDataBase.js +28 -28
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/BrowserApic.vue +123 -123
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/GifData.js +83 -83
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/LoopToolBase.js +25 -25
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/NormalLoopTool.js +61 -61
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/PartLoopTool.js +119 -119
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/Viewer.js +106 -106
- package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/WebpData.js +141 -141
- package/utils/JsViewVueWidget/BrowserDebugWidget/WidgetLoader.js +20 -20
- package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +204 -204
- package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +63 -63
- package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +426 -426
- package/utils/JsViewVueWidget/JsvActorMove/index.js +12 -12
- package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +178 -178
- package/utils/JsViewVueWidget/JsvApic/index.js +17 -17
- package/utils/JsViewVueWidget/JsvMarquee.vue +196 -196
- package/utils/JsViewVueWidget/JsvNinePatch.vue +76 -76
- package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +350 -350
- package/utils/JsViewVueWidget/JsvPreload/index.js +21 -21
- package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +140 -140
- package/utils/JsViewVueWidget/JsvQrcode/index.js +18 -18
- package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +139 -139
- package/utils/JsViewVueWidget/JsvSpray/index.js +14 -14
- package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +447 -447
- package/utils/JsViewVueWidget/JsvSpriteAnim/SpriteController.js +56 -56
- package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +6 -6
- package/utils/JsViewVueWidget/JsvSwiper/Indicator.vue +34 -34
- package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +494 -494
- package/utils/JsViewVueWidget/JsvSwiper/index.js +9 -9
- package/utils/JsViewVueWidget/JsvSwiper3D/Indicator.vue +34 -34
- package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +403 -403
- package/utils/JsViewVueWidget/JsvSwiper3D/index.js +9 -9
- package/utils/JsViewVueWidget/JsvTextBox.vue +110 -110
- package/utils/JsViewVueWidget/JsvVideo.vue +35 -35
- package/patches/node_modules/@babel/preset-env/lib/available-plugins.js +0 -219
- package/patches/node_modules/@vue/cli-plugin-typescript/index.js +0 -100
- package/patches/node_modules/@vue/cli-service/lib/commands/serve.js +0 -395
- package/patches/node_modules/@vue/cli-service/lib/config/app.js +0 -272
- package/patches/node_modules/@vue/cli-service/lib/config/assets.js +0 -70
- package/patches/node_modules/@vue/cli-service/lib/config/base.js +0 -212
- package/patches/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js +0 -2566
- package/patches/node_modules/@vue/compiler-sfc/dist/jsview-css-to-js.js +0 -274
- package/patches/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +0 -1596
- package/patches/node_modules/postcss-js/objectifier.js +0 -90
- package/patches/node_modules/vue-loader/dist/resolveScript.js +0 -70
- package/scripts/deploy-fast-pack.js +0 -17
- package/scripts/deploy-fast-publish.js +0 -44
- package/scripts/deploy-git-commit-empty.js +0 -21
- package/scripts/deploy-prepare.js +0 -56
- package/scripts/make-js.sh +0 -181
- package/vetur.config.js +0 -5
package/samples/TextBox/App.vue
CHANGED
|
@@ -1,179 +1,179 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
* 【界面概述】
|
|
3
|
-
* 展示文字垂直对齐方式显示控件的用法
|
|
4
|
-
*
|
|
5
|
-
* 【控件介绍】
|
|
6
|
-
*
|
|
7
|
-
* JsvTextBox:Vue高阶组件,文字的垂直对齐方式显示控件
|
|
8
|
-
* props说明:
|
|
9
|
-
* verticalAlign {string} 垂直对齐方式 (必需) top、middle、bottom
|
|
10
|
-
* stylesList {array} 布局样式(必需),数组中可包含样式对象或者JsvStyleClass,或者JsvTextStyleClass对象,
|
|
11
|
-
* 样式对象内容为{left:0, top:0, width:xxx, height:xxx},
|
|
12
|
-
* 布局样式为数组中所有样式的合并。
|
|
13
|
-
* styleToken {string} 类似于vue html元素的key,当style变化时,由使用者改变此Token通知hoc进行style重新识别。
|
|
14
|
-
* Token不变的场景,props变化不会引起render,以提高渲染性能
|
|
15
|
-
*
|
|
16
|
-
* 【技巧说明】
|
|
17
|
-
* Q: 如何实现文字居中对齐方式显示?
|
|
18
|
-
* A: verticalAlign属性设置为middle
|
|
19
|
-
*
|
|
20
|
-
* Q: 如何触发控件重绘?
|
|
21
|
-
* A: 1. 变更styleToken属性,将触发控件重新解析styles并重绘
|
|
22
|
-
* 2. 变更文字内容,将触发控件重绘,但不会重新解析styles
|
|
23
|
-
-->
|
|
24
|
-
|
|
25
|
-
<script lang="ts">
|
|
26
|
-
import { Options, Vue } from "vue-class-component";
|
|
27
|
-
import RenderLeft from "./RenderLeft.vue";
|
|
28
|
-
import RenderRight from "./RenderRight.vue";
|
|
29
|
-
import RenderCenter from "./RenderCenter.vue";
|
|
30
|
-
import RenderOneLine from "./RenderOneLine.vue";
|
|
31
|
-
import {
|
|
32
|
-
JsvTextStyleClass,
|
|
33
|
-
JsvStyleClass,
|
|
34
|
-
} from "jsview/utils/JsViewVueTools/JsvStyleClass.js";
|
|
35
|
-
|
|
36
|
-
@Options({
|
|
37
|
-
components: {
|
|
38
|
-
RenderLeft,
|
|
39
|
-
RenderRight,
|
|
40
|
-
RenderCenter,
|
|
41
|
-
RenderOneLine,
|
|
42
|
-
},
|
|
43
|
-
})
|
|
44
|
-
export default class App extends Vue {
|
|
45
|
-
constructor(props: any) {
|
|
46
|
-
super(props);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
private offsetX: any = 0;
|
|
50
|
-
private offsetY: any = 0;
|
|
51
|
-
private onLineText = "abcdefghigk";
|
|
52
|
-
private text: any = `静夜思 --唐李白
|
|
53
|
-
床前明月光,疑是地上霜;
|
|
54
|
-
举头望明月,低头思故乡。`;
|
|
55
|
-
private text_latex: String = `静夜思 --唐李白
|
|
56
|
-
床前\\textcolor{#FF0000}{明月光},疑是地上霜;
|
|
57
|
-
举头\\textcolor{#0000FF}{望明月},低头思故乡。`;
|
|
58
|
-
private sLayoutSet: any = new JsvStyleClass({
|
|
59
|
-
width: 400,
|
|
60
|
-
height: 300,
|
|
61
|
-
backgroundColor: "rgba(255,255,0,0.5)",
|
|
62
|
-
});
|
|
63
|
-
private sFontSetLeft40Top: any = new JsvTextStyleClass({
|
|
64
|
-
fontSize: "30px", // 测试 30 和 '30px' 两种写法的兼容性
|
|
65
|
-
textAlign: "left",
|
|
66
|
-
lineHeight: "40px",
|
|
67
|
-
});
|
|
68
|
-
private sFontSetLeft40Center: any = new JsvTextStyleClass({
|
|
69
|
-
fontSize: "30px", // 测试 30 和 '30px' 两种写法的兼容性
|
|
70
|
-
textAlign: "left",
|
|
71
|
-
lineHeight: "40px",
|
|
72
|
-
});
|
|
73
|
-
private sFontSetLeft40Bottom: any = new JsvTextStyleClass({
|
|
74
|
-
fontSize: "30px",
|
|
75
|
-
textAlign: "left",
|
|
76
|
-
lineHeight: "40px",
|
|
77
|
-
});
|
|
78
|
-
private sFontSetLeft80: any = new JsvTextStyleClass({
|
|
79
|
-
fontSize: "30px",
|
|
80
|
-
textAlign: "left",
|
|
81
|
-
lineHeight: "80px",
|
|
82
|
-
});
|
|
83
|
-
private sFontSetCenter40: any = new JsvTextStyleClass({
|
|
84
|
-
fontSize: "30px",
|
|
85
|
-
textAlign: "center",
|
|
86
|
-
lineHeight: "40px",
|
|
87
|
-
});
|
|
88
|
-
private sFontSetCenter80: any = new JsvTextStyleClass({
|
|
89
|
-
fontSize: "30px",
|
|
90
|
-
textAlign: "center",
|
|
91
|
-
lineHeight: "80px",
|
|
92
|
-
});
|
|
93
|
-
private sFontSetRight40: any = new JsvTextStyleClass({
|
|
94
|
-
fontSize: "30px",
|
|
95
|
-
textAlign: "right",
|
|
96
|
-
lineHeight: "80px",
|
|
97
|
-
});
|
|
98
|
-
private sFontSetRight80: any = new JsvTextStyleClass({
|
|
99
|
-
fontSize: "30px",
|
|
100
|
-
textAlign: "right",
|
|
101
|
-
lineHeight: "80px",
|
|
102
|
-
});
|
|
103
|
-
private sStyleToken: String = "v1.0";
|
|
104
|
-
private rootRef: any = null;
|
|
105
|
-
private moveCount: any = 0;
|
|
106
|
-
|
|
107
|
-
onKeyDown(ev: any) {
|
|
108
|
-
if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
|
|
109
|
-
this.$router?.go(-1); // 有router时,是从DemoHomepage进入,回退
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
switch (ev.keyCode) {
|
|
113
|
-
case 37:
|
|
114
|
-
this.offsetX += 30;
|
|
115
|
-
this.moveCount++;
|
|
116
|
-
break;
|
|
117
|
-
case 39:
|
|
118
|
-
this.offsetX -= 30;
|
|
119
|
-
this.moveCount++;
|
|
120
|
-
break;
|
|
121
|
-
case 38:
|
|
122
|
-
this.offsetY += 30;
|
|
123
|
-
this.moveCount++;
|
|
124
|
-
break;
|
|
125
|
-
case 40:
|
|
126
|
-
this.offsetY -= 30;
|
|
127
|
-
this.moveCount++;
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
130
|
-
return true;
|
|
131
|
-
}
|
|
132
|
-
onFocus() {
|
|
133
|
-
console.log("TextBox getFocus");
|
|
134
|
-
}
|
|
135
|
-
onBlur() {
|
|
136
|
-
console.log("TextBox loseFocus");
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
</script>
|
|
140
|
-
|
|
141
|
-
<template>
|
|
142
|
-
<jsv-focus-block
|
|
143
|
-
autoFocus
|
|
144
|
-
:onAction="{
|
|
145
|
-
onKeyDown: onKeyDown,
|
|
146
|
-
onFocus: onFocus,
|
|
147
|
-
onBlur: onBlur,
|
|
148
|
-
}"
|
|
149
|
-
>
|
|
150
|
-
<div :style="{ top: offsetY, left: offsetX }">
|
|
151
|
-
<RenderLeft
|
|
152
|
-
:text="text"
|
|
153
|
-
:moveCount="moveCount"
|
|
154
|
-
:sStyleToken="sStyleToken"
|
|
155
|
-
:sLayoutSet="sLayoutSet"
|
|
156
|
-
:sFontSetLeft40Top="sFontSetLeft40Top"
|
|
157
|
-
:sFontSetLeft40Center="sFontSetLeft40Center"
|
|
158
|
-
:sFontSetLeft40Bottom="sFontSetLeft40Bottom"
|
|
159
|
-
:sFontSetLeft80="sFontSetLeft80"
|
|
160
|
-
/>
|
|
161
|
-
<RenderRight
|
|
162
|
-
:text="text"
|
|
163
|
-
:sStyleToken="sStyleToken"
|
|
164
|
-
:sLayoutSet="sLayoutSet"
|
|
165
|
-
:sFontSetRight40="sFontSetRight40"
|
|
166
|
-
:sFontSetRight80="sFontSetRight80"
|
|
167
|
-
/>
|
|
168
|
-
<RenderCenter
|
|
169
|
-
:text="text"
|
|
170
|
-
:text_latex="text_latex"
|
|
171
|
-
:sStyleToken="sStyleToken"
|
|
172
|
-
:sLayoutSet="sLayoutSet"
|
|
173
|
-
:sFontSetCenter40="sFontSetCenter40"
|
|
174
|
-
:sFontSetCenter80="sFontSetCenter80"
|
|
175
|
-
/>
|
|
176
|
-
<RenderOneLine :text="onLineText" :sStyleToken="sStyleToken" />
|
|
177
|
-
</div>
|
|
178
|
-
</jsv-focus-block>
|
|
1
|
+
<!--
|
|
2
|
+
* 【界面概述】
|
|
3
|
+
* 展示文字垂直对齐方式显示控件的用法
|
|
4
|
+
*
|
|
5
|
+
* 【控件介绍】
|
|
6
|
+
*
|
|
7
|
+
* JsvTextBox:Vue高阶组件,文字的垂直对齐方式显示控件
|
|
8
|
+
* props说明:
|
|
9
|
+
* verticalAlign {string} 垂直对齐方式 (必需) top、middle、bottom
|
|
10
|
+
* stylesList {array} 布局样式(必需),数组中可包含样式对象或者JsvStyleClass,或者JsvTextStyleClass对象,
|
|
11
|
+
* 样式对象内容为{left:0, top:0, width:xxx, height:xxx},
|
|
12
|
+
* 布局样式为数组中所有样式的合并。
|
|
13
|
+
* styleToken {string} 类似于vue html元素的key,当style变化时,由使用者改变此Token通知hoc进行style重新识别。
|
|
14
|
+
* Token不变的场景,props变化不会引起render,以提高渲染性能
|
|
15
|
+
*
|
|
16
|
+
* 【技巧说明】
|
|
17
|
+
* Q: 如何实现文字居中对齐方式显示?
|
|
18
|
+
* A: verticalAlign属性设置为middle
|
|
19
|
+
*
|
|
20
|
+
* Q: 如何触发控件重绘?
|
|
21
|
+
* A: 1. 变更styleToken属性,将触发控件重新解析styles并重绘
|
|
22
|
+
* 2. 变更文字内容,将触发控件重绘,但不会重新解析styles
|
|
23
|
+
-->
|
|
24
|
+
|
|
25
|
+
<script lang="ts">
|
|
26
|
+
import { Options, Vue } from "vue-class-component";
|
|
27
|
+
import RenderLeft from "./RenderLeft.vue";
|
|
28
|
+
import RenderRight from "./RenderRight.vue";
|
|
29
|
+
import RenderCenter from "./RenderCenter.vue";
|
|
30
|
+
import RenderOneLine from "./RenderOneLine.vue";
|
|
31
|
+
import {
|
|
32
|
+
JsvTextStyleClass,
|
|
33
|
+
JsvStyleClass,
|
|
34
|
+
} from "jsview/utils/JsViewVueTools/JsvStyleClass.js";
|
|
35
|
+
|
|
36
|
+
@Options({
|
|
37
|
+
components: {
|
|
38
|
+
RenderLeft,
|
|
39
|
+
RenderRight,
|
|
40
|
+
RenderCenter,
|
|
41
|
+
RenderOneLine,
|
|
42
|
+
},
|
|
43
|
+
})
|
|
44
|
+
export default class App extends Vue {
|
|
45
|
+
constructor(props: any) {
|
|
46
|
+
super(props);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private offsetX: any = 0;
|
|
50
|
+
private offsetY: any = 0;
|
|
51
|
+
private onLineText = "abcdefghigk";
|
|
52
|
+
private text: any = `静夜思 --唐李白
|
|
53
|
+
床前明月光,疑是地上霜;
|
|
54
|
+
举头望明月,低头思故乡。`;
|
|
55
|
+
private text_latex: String = `静夜思 --唐李白
|
|
56
|
+
床前\\textcolor{#FF0000}{明月光},疑是地上霜;
|
|
57
|
+
举头\\textcolor{#0000FF}{望明月},低头思故乡。`;
|
|
58
|
+
private sLayoutSet: any = new JsvStyleClass({
|
|
59
|
+
width: 400,
|
|
60
|
+
height: 300,
|
|
61
|
+
backgroundColor: "rgba(255,255,0,0.5)",
|
|
62
|
+
});
|
|
63
|
+
private sFontSetLeft40Top: any = new JsvTextStyleClass({
|
|
64
|
+
fontSize: "30px", // 测试 30 和 '30px' 两种写法的兼容性
|
|
65
|
+
textAlign: "left",
|
|
66
|
+
lineHeight: "40px",
|
|
67
|
+
});
|
|
68
|
+
private sFontSetLeft40Center: any = new JsvTextStyleClass({
|
|
69
|
+
fontSize: "30px", // 测试 30 和 '30px' 两种写法的兼容性
|
|
70
|
+
textAlign: "left",
|
|
71
|
+
lineHeight: "40px",
|
|
72
|
+
});
|
|
73
|
+
private sFontSetLeft40Bottom: any = new JsvTextStyleClass({
|
|
74
|
+
fontSize: "30px",
|
|
75
|
+
textAlign: "left",
|
|
76
|
+
lineHeight: "40px",
|
|
77
|
+
});
|
|
78
|
+
private sFontSetLeft80: any = new JsvTextStyleClass({
|
|
79
|
+
fontSize: "30px",
|
|
80
|
+
textAlign: "left",
|
|
81
|
+
lineHeight: "80px",
|
|
82
|
+
});
|
|
83
|
+
private sFontSetCenter40: any = new JsvTextStyleClass({
|
|
84
|
+
fontSize: "30px",
|
|
85
|
+
textAlign: "center",
|
|
86
|
+
lineHeight: "40px",
|
|
87
|
+
});
|
|
88
|
+
private sFontSetCenter80: any = new JsvTextStyleClass({
|
|
89
|
+
fontSize: "30px",
|
|
90
|
+
textAlign: "center",
|
|
91
|
+
lineHeight: "80px",
|
|
92
|
+
});
|
|
93
|
+
private sFontSetRight40: any = new JsvTextStyleClass({
|
|
94
|
+
fontSize: "30px",
|
|
95
|
+
textAlign: "right",
|
|
96
|
+
lineHeight: "80px",
|
|
97
|
+
});
|
|
98
|
+
private sFontSetRight80: any = new JsvTextStyleClass({
|
|
99
|
+
fontSize: "30px",
|
|
100
|
+
textAlign: "right",
|
|
101
|
+
lineHeight: "80px",
|
|
102
|
+
});
|
|
103
|
+
private sStyleToken: String = "v1.0";
|
|
104
|
+
private rootRef: any = null;
|
|
105
|
+
private moveCount: any = 0;
|
|
106
|
+
|
|
107
|
+
onKeyDown(ev: any) {
|
|
108
|
+
if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
|
|
109
|
+
this.$router?.go(-1); // 有router时,是从DemoHomepage进入,回退
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
switch (ev.keyCode) {
|
|
113
|
+
case 37:
|
|
114
|
+
this.offsetX += 30;
|
|
115
|
+
this.moveCount++;
|
|
116
|
+
break;
|
|
117
|
+
case 39:
|
|
118
|
+
this.offsetX -= 30;
|
|
119
|
+
this.moveCount++;
|
|
120
|
+
break;
|
|
121
|
+
case 38:
|
|
122
|
+
this.offsetY += 30;
|
|
123
|
+
this.moveCount++;
|
|
124
|
+
break;
|
|
125
|
+
case 40:
|
|
126
|
+
this.offsetY -= 30;
|
|
127
|
+
this.moveCount++;
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
onFocus() {
|
|
133
|
+
console.log("TextBox getFocus");
|
|
134
|
+
}
|
|
135
|
+
onBlur() {
|
|
136
|
+
console.log("TextBox loseFocus");
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
</script>
|
|
140
|
+
|
|
141
|
+
<template>
|
|
142
|
+
<jsv-focus-block
|
|
143
|
+
autoFocus
|
|
144
|
+
:onAction="{
|
|
145
|
+
onKeyDown: onKeyDown,
|
|
146
|
+
onFocus: onFocus,
|
|
147
|
+
onBlur: onBlur,
|
|
148
|
+
}"
|
|
149
|
+
>
|
|
150
|
+
<div :style="{ top: offsetY, left: offsetX }">
|
|
151
|
+
<RenderLeft
|
|
152
|
+
:text="text"
|
|
153
|
+
:moveCount="moveCount"
|
|
154
|
+
:sStyleToken="sStyleToken"
|
|
155
|
+
:sLayoutSet="sLayoutSet"
|
|
156
|
+
:sFontSetLeft40Top="sFontSetLeft40Top"
|
|
157
|
+
:sFontSetLeft40Center="sFontSetLeft40Center"
|
|
158
|
+
:sFontSetLeft40Bottom="sFontSetLeft40Bottom"
|
|
159
|
+
:sFontSetLeft80="sFontSetLeft80"
|
|
160
|
+
/>
|
|
161
|
+
<RenderRight
|
|
162
|
+
:text="text"
|
|
163
|
+
:sStyleToken="sStyleToken"
|
|
164
|
+
:sLayoutSet="sLayoutSet"
|
|
165
|
+
:sFontSetRight40="sFontSetRight40"
|
|
166
|
+
:sFontSetRight80="sFontSetRight80"
|
|
167
|
+
/>
|
|
168
|
+
<RenderCenter
|
|
169
|
+
:text="text"
|
|
170
|
+
:text_latex="text_latex"
|
|
171
|
+
:sStyleToken="sStyleToken"
|
|
172
|
+
:sLayoutSet="sLayoutSet"
|
|
173
|
+
:sFontSetCenter40="sFontSetCenter40"
|
|
174
|
+
:sFontSetCenter80="sFontSetCenter80"
|
|
175
|
+
/>
|
|
176
|
+
<RenderOneLine :text="onLineText" :sStyleToken="sStyleToken" />
|
|
177
|
+
</div>
|
|
178
|
+
</jsv-focus-block>
|
|
179
179
|
</template>
|
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import JsvTextBox from "jsview/utils/JsViewVueWidget/JsvTextBox.vue";
|
|
3
|
-
export default {
|
|
4
|
-
props: {
|
|
5
|
-
text: String,
|
|
6
|
-
text_latex: String,
|
|
7
|
-
sStyleToken: String,
|
|
8
|
-
sLayoutSet: Object,
|
|
9
|
-
sFontSetCenter40: Object,
|
|
10
|
-
sFontSetCenter80: Object,
|
|
11
|
-
},
|
|
12
|
-
components: { JsvTextBox },
|
|
13
|
-
};
|
|
14
|
-
</script>
|
|
15
|
-
|
|
16
|
-
<template>
|
|
17
|
-
<div :style="{ top: 400 }">
|
|
18
|
-
<div
|
|
19
|
-
:style="{
|
|
20
|
-
left: 0,
|
|
21
|
-
top: -50,
|
|
22
|
-
width: 400,
|
|
23
|
-
height: 50,
|
|
24
|
-
fontSize: '20px',
|
|
25
|
-
textAlign: 'left',
|
|
26
|
-
lineHeight: '50px',
|
|
27
|
-
backgroundColor: '#00ff00',
|
|
28
|
-
}"
|
|
29
|
-
>
|
|
30
|
-
整体垂直向上对齐、文字水平居中显示
|
|
31
|
-
</div>
|
|
32
|
-
<JsvTextBox
|
|
33
|
-
:verticalAlign="'top'"
|
|
34
|
-
:styleToken="sStyleToken"
|
|
35
|
-
:stylesList="[sLayoutSet, sFontSetCenter40, { left: 0, top: 0 }]"
|
|
36
|
-
>
|
|
37
|
-
{{ `[TC]${text}` }}
|
|
38
|
-
</JsvTextBox>
|
|
39
|
-
<div
|
|
40
|
-
:style="{
|
|
41
|
-
left: 410,
|
|
42
|
-
top: -50,
|
|
43
|
-
width: 400,
|
|
44
|
-
height: 50,
|
|
45
|
-
fontSize: '20px',
|
|
46
|
-
textAlign: 'left',
|
|
47
|
-
lineHeight: '50px',
|
|
48
|
-
backgroundColor: '#00ff00',
|
|
49
|
-
}"
|
|
50
|
-
>
|
|
51
|
-
整体垂直居中对齐、文字水平居中显示
|
|
52
|
-
</div>
|
|
53
|
-
<JsvTextBox
|
|
54
|
-
:verticalAlign="'middle'"
|
|
55
|
-
:styleToken="sStyleToken"
|
|
56
|
-
:stylesList="[sLayoutSet, sFontSetCenter40, { left: 410, top: 0 }]"
|
|
57
|
-
:enableLatex="true"
|
|
58
|
-
>
|
|
59
|
-
{{ `[MC]${text_latex}` }}
|
|
60
|
-
</JsvTextBox>
|
|
61
|
-
<div
|
|
62
|
-
:style="{
|
|
63
|
-
left: 820,
|
|
64
|
-
top: -50,
|
|
65
|
-
width: 400,
|
|
66
|
-
height: 50,
|
|
67
|
-
fontSize: '20px',
|
|
68
|
-
textAlign: 'left',
|
|
69
|
-
lineHeight: '50px',
|
|
70
|
-
backgroundColor: '#00ff00',
|
|
71
|
-
}"
|
|
72
|
-
>
|
|
73
|
-
整体垂直向下对齐、文字水平居中显示
|
|
74
|
-
</div>
|
|
75
|
-
<JsvTextBox
|
|
76
|
-
:verticalAlign="'bottom'"
|
|
77
|
-
:styleToken="sStyleToken"
|
|
78
|
-
:stylesList="[sLayoutSet, sFontSetCenter40, { left: 820, top: 0 }]"
|
|
79
|
-
>
|
|
80
|
-
{{ `[BC]${text}` }}
|
|
81
|
-
</JsvTextBox>
|
|
82
|
-
|
|
83
|
-
<div
|
|
84
|
-
:style="{
|
|
85
|
-
left: 1240,
|
|
86
|
-
top: -50,
|
|
87
|
-
width: 500,
|
|
88
|
-
height: 50,
|
|
89
|
-
fontSize: '20px',
|
|
90
|
-
textAlign: 'left',
|
|
91
|
-
lineHeight: '50px',
|
|
92
|
-
backgroundColor: '#00ff00',
|
|
93
|
-
}"
|
|
94
|
-
>
|
|
95
|
-
整体垂直居中对齐、文字水平居中显示、行高80px
|
|
96
|
-
</div>
|
|
97
|
-
<JsvTextBox
|
|
98
|
-
:verticalAlign="'middle'"
|
|
99
|
-
:styleToken="sStyleToken"
|
|
100
|
-
:stylesList="[
|
|
101
|
-
sLayoutSet,
|
|
102
|
-
sFontSetCenter80,
|
|
103
|
-
{ left: 1240, top: 0, width: 500 },
|
|
104
|
-
]"
|
|
105
|
-
>
|
|
106
|
-
{{ `[MC]${text}` }}
|
|
107
|
-
</JsvTextBox>
|
|
108
|
-
</div>
|
|
1
|
+
<script>
|
|
2
|
+
import JsvTextBox from "jsview/utils/JsViewVueWidget/JsvTextBox.vue";
|
|
3
|
+
export default {
|
|
4
|
+
props: {
|
|
5
|
+
text: String,
|
|
6
|
+
text_latex: String,
|
|
7
|
+
sStyleToken: String,
|
|
8
|
+
sLayoutSet: Object,
|
|
9
|
+
sFontSetCenter40: Object,
|
|
10
|
+
sFontSetCenter80: Object,
|
|
11
|
+
},
|
|
12
|
+
components: { JsvTextBox },
|
|
13
|
+
};
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<template>
|
|
17
|
+
<div :style="{ top: 400 }">
|
|
18
|
+
<div
|
|
19
|
+
:style="{
|
|
20
|
+
left: 0,
|
|
21
|
+
top: -50,
|
|
22
|
+
width: 400,
|
|
23
|
+
height: 50,
|
|
24
|
+
fontSize: '20px',
|
|
25
|
+
textAlign: 'left',
|
|
26
|
+
lineHeight: '50px',
|
|
27
|
+
backgroundColor: '#00ff00',
|
|
28
|
+
}"
|
|
29
|
+
>
|
|
30
|
+
整体垂直向上对齐、文字水平居中显示
|
|
31
|
+
</div>
|
|
32
|
+
<JsvTextBox
|
|
33
|
+
:verticalAlign="'top'"
|
|
34
|
+
:styleToken="sStyleToken"
|
|
35
|
+
:stylesList="[sLayoutSet, sFontSetCenter40, { left: 0, top: 0 }]"
|
|
36
|
+
>
|
|
37
|
+
{{ `[TC]${text}` }}
|
|
38
|
+
</JsvTextBox>
|
|
39
|
+
<div
|
|
40
|
+
:style="{
|
|
41
|
+
left: 410,
|
|
42
|
+
top: -50,
|
|
43
|
+
width: 400,
|
|
44
|
+
height: 50,
|
|
45
|
+
fontSize: '20px',
|
|
46
|
+
textAlign: 'left',
|
|
47
|
+
lineHeight: '50px',
|
|
48
|
+
backgroundColor: '#00ff00',
|
|
49
|
+
}"
|
|
50
|
+
>
|
|
51
|
+
整体垂直居中对齐、文字水平居中显示
|
|
52
|
+
</div>
|
|
53
|
+
<JsvTextBox
|
|
54
|
+
:verticalAlign="'middle'"
|
|
55
|
+
:styleToken="sStyleToken"
|
|
56
|
+
:stylesList="[sLayoutSet, sFontSetCenter40, { left: 410, top: 0 }]"
|
|
57
|
+
:enableLatex="true"
|
|
58
|
+
>
|
|
59
|
+
{{ `[MC]${text_latex}` }}
|
|
60
|
+
</JsvTextBox>
|
|
61
|
+
<div
|
|
62
|
+
:style="{
|
|
63
|
+
left: 820,
|
|
64
|
+
top: -50,
|
|
65
|
+
width: 400,
|
|
66
|
+
height: 50,
|
|
67
|
+
fontSize: '20px',
|
|
68
|
+
textAlign: 'left',
|
|
69
|
+
lineHeight: '50px',
|
|
70
|
+
backgroundColor: '#00ff00',
|
|
71
|
+
}"
|
|
72
|
+
>
|
|
73
|
+
整体垂直向下对齐、文字水平居中显示
|
|
74
|
+
</div>
|
|
75
|
+
<JsvTextBox
|
|
76
|
+
:verticalAlign="'bottom'"
|
|
77
|
+
:styleToken="sStyleToken"
|
|
78
|
+
:stylesList="[sLayoutSet, sFontSetCenter40, { left: 820, top: 0 }]"
|
|
79
|
+
>
|
|
80
|
+
{{ `[BC]${text}` }}
|
|
81
|
+
</JsvTextBox>
|
|
82
|
+
|
|
83
|
+
<div
|
|
84
|
+
:style="{
|
|
85
|
+
left: 1240,
|
|
86
|
+
top: -50,
|
|
87
|
+
width: 500,
|
|
88
|
+
height: 50,
|
|
89
|
+
fontSize: '20px',
|
|
90
|
+
textAlign: 'left',
|
|
91
|
+
lineHeight: '50px',
|
|
92
|
+
backgroundColor: '#00ff00',
|
|
93
|
+
}"
|
|
94
|
+
>
|
|
95
|
+
整体垂直居中对齐、文字水平居中显示、行高80px
|
|
96
|
+
</div>
|
|
97
|
+
<JsvTextBox
|
|
98
|
+
:verticalAlign="'middle'"
|
|
99
|
+
:styleToken="sStyleToken"
|
|
100
|
+
:stylesList="[
|
|
101
|
+
sLayoutSet,
|
|
102
|
+
sFontSetCenter80,
|
|
103
|
+
{ left: 1240, top: 0, width: 500 },
|
|
104
|
+
]"
|
|
105
|
+
>
|
|
106
|
+
{{ `[MC]${text}` }}
|
|
107
|
+
</JsvTextBox>
|
|
108
|
+
</div>
|
|
109
109
|
</template>
|