@shijiu/jsview-vue 2.1.25 → 2.1.200

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 (80) hide show
  1. package/package.json +1 -1
  2. package/utils/JsViewEngineWidget/JsvFocusBlock.vue +1 -1
  3. package/utils/JsViewEngineWidget/JsvFocusHub.ts +123 -0
  4. package/utils/JsViewEngineWidget/JsvFocusManager.js +4 -3
  5. package/utils/JsViewEngineWidget/MetroWidget/AnimationManager.ts +145 -51
  6. package/utils/JsViewEngineWidget/MetroWidget/ListWidget.vue +51 -64
  7. package/utils/JsViewEngineWidget/MetroWidget/MetroWidget.vue +62 -71
  8. package/utils/JsViewEngineWidget/MetroWidget/MetroWidgetSetup.js +308 -613
  9. package/utils/JsViewEngineWidget/TemplateParser/CommonMetroTemplate.ts +127 -247
  10. package/utils/JsViewEngineWidget/TemplateParser/ListMetroTemplate.ts +1 -0
  11. package/utils/JsViewEngineWidget/TemplateParser/MetroTemplate.ts +36 -2
  12. package/utils/JsViewEngineWidget/WidgetCommon.ts +25 -6
  13. package/utils/JsViewPlugin/JsvAudio/{JsvAudioBrowser.vue → BrowserAudio/BrowserAudio.vue} +1 -1
  14. package/utils/JsViewPlugin/JsvAudio/index.js +1 -1
  15. package/utils/JsViewPlugin/JsvLatex/BrowserDomBuilder.js +37 -0
  16. package/utils/JsViewPlugin/JsvLatex/Color.ts +43 -0
  17. package/utils/JsViewPlugin/JsvLatex/JsvLatex.vue +159 -0
  18. package/utils/JsViewPlugin/JsvLatex/JsvLatexBridgeProxy.js +16 -0
  19. package/utils/JsViewPlugin/JsvLatex/JsvLatexBrowser.vue +59 -0
  20. package/utils/JsViewPlugin/JsvLatex/PluginLoader.js +171 -0
  21. package/utils/JsViewPlugin/JsvLatex/index.js +28 -0
  22. package/utils/JsViewPlugin/JsvLatex/mathjax-tex-svg.txt +1 -0
  23. package/utils/JsViewPlugin/JsvLatex/version.js +24 -0
  24. package/utils/JsViewPlugin/JsvLatex/version.mjs +24 -0
  25. package/utils/JsViewPlugin/index.js +2 -1
  26. package/utils/JsViewVueTools/JsvDynamicCssStyle.js +2 -52
  27. package/utils/JsViewVueTools/JsvPerformance.ts +11 -0
  28. package/utils/JsViewVueTools/JsvPreDownloader.ts +55 -11
  29. package/utils/JsViewVueTools/JsvStyleSheetsDeclarer.js +40 -0
  30. package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/CanvasTexture.ts +143 -0
  31. package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/CommandList.ts +24 -0
  32. package/utils/JsViewVueTools/JsvTextureStore/CanvasTexture/Path.ts +198 -0
  33. package/utils/JsViewVueTools/JsvTextureStore/JsvTextureStore.ts +31 -0
  34. package/utils/JsViewVueTools/JsvTextureStore/Store.ts +32 -0
  35. package/utils/JsViewVueTools/JsvTextureStore/Texture.ts +38 -0
  36. package/utils/JsViewVueTools/index.js +3 -0
  37. package/utils/JsViewVueWidget/JsvEnableRenderBreak.vue +17 -0
  38. package/utils/JsViewVueWidget/JsvFreeMoveActor/ActionRefObject.ts +6 -0
  39. package/utils/JsViewVueWidget/JsvFreeMoveActor/ActorControl.ts +144 -0
  40. package/utils/JsViewVueWidget/JsvFreeMoveActor/ActorState.ts +6 -0
  41. package/utils/JsViewVueWidget/JsvFreeMoveActor/{CallbackManager.js → CallbackManager.ts} +19 -10
  42. package/utils/JsViewVueWidget/JsvFreeMoveActor/ForgeTypeDefine.ts +45 -0
  43. package/utils/JsViewVueWidget/JsvFreeMoveActor/FreeMoveActor.vue +1 -1
  44. package/utils/JsViewVueWidget/JsvFreeMoveActor/JsvEnvBlocker.vue +124 -0
  45. package/utils/JsViewVueWidget/JsvFreeMoveActor/KeepFlags.ts +6 -0
  46. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetAction.ts +553 -0
  47. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetCondition.ts +138 -0
  48. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetState.ts +53 -0
  49. package/utils/JsViewVueWidget/JsvFreeMoveActor/index.js +11 -1
  50. package/utils/JsViewVueWidget/JsvHole.js +1 -1
  51. package/utils/JsViewVueWidget/JsvLine/JsvLine.vue +101 -0
  52. package/utils/JsViewVueWidget/JsvLine/LineManager.js +62 -0
  53. package/utils/JsViewVueWidget/JsvLine/index.js +3 -0
  54. package/utils/JsViewVueWidget/JsvMarquee.vue +316 -139
  55. package/utils/JsViewVueWidget/JsvMindMap/CommonType.ts +1 -0
  56. package/utils/JsViewVueWidget/JsvMindMap/Constant.ts +20 -0
  57. package/utils/JsViewVueWidget/JsvMindMap/DataTree.ts +394 -0
  58. package/utils/JsViewVueWidget/JsvMindMap/Geometry.ts +277 -0
  59. package/utils/JsViewVueWidget/JsvMindMap/JsvMindMap.vue +653 -0
  60. package/utils/JsViewVueWidget/JsvMindMap/index.js +1 -0
  61. package/utils/JsViewVueWidget/JsvMindMap/rtree.js +628 -0
  62. package/utils/JsViewVueWidget/JsvNinePatch.vue +2 -2
  63. package/utils/JsViewVueWidget/JsvPieChart.vue +124 -0
  64. package/utils/JsViewVueWidget/JsvPosterImage.vue +32 -9
  65. package/utils/JsViewVueWidget/JsvPreload/BrowserPreload.vue +135 -133
  66. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +273 -270
  67. package/utils/JsViewVueWidget/JsvSector.vue +107 -0
  68. package/utils/JsViewVueWidget/JsvTextBox.vue +14 -1
  69. package/utils/JsViewVueWidget/JsvTextureAnim/JsvTextureAnim.vue +28 -2
  70. package/utils/JsViewVueWidget/JsvVisibleSensor/JsvVisibleSensor.vue +122 -93
  71. package/utils/JsViewVueWidget/index.js +15 -7
  72. package/utils/JsViewVueWidget/JsvFreeMoveActor/ActorControl.js +0 -112
  73. package/utils/JsViewVueWidget/JsvFreeMoveActor/CommonTools.js +0 -18
  74. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetAction.js +0 -216
  75. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetCondition.js +0 -66
  76. package/utils/JsViewVueWidget/JsvFreeMoveActor/SetState.js +0 -38
  77. package/utils/JsViewVueWidget/JsvFreeMoveActor/TypeDefine.js +0 -12
  78. package/utils/JsViewVueWidget/JsvTouchContainer.vue +0 -183
  79. package/utils/JsViewVueWidget/JsvTransparentDiv.vue +0 -87
  80. /package/utils/{JsViewVueWidget → JsViewPlugin/JsvAudio/BrowserAudio}/JsvSystemAudio.vue +0 -0
@@ -1,216 +0,0 @@
1
- /*
2
- * @Author: donglin.lu@qcast.cn
3
- * @Date: 2023-07-18 11:14:00
4
- * @LastEditors: donglin.lu@qcast.cn
5
- * @Description: file content
6
- */
7
-
8
- import { ConditionSetBuilder, StateCmdBuilder, CmdPackBuilder, ActionCmdBuilder } from "./CommonTools.js"
9
- import { GroupType_FromAction } from "./TypeDefine.js"
10
-
11
- const ConditionCmdCreator = (builderThis, setCondFunc, acts, isFinal, callback) => {
12
- let commonInfo = ConditionSetBuilder.InitCommonInfo();
13
- ConditionSetBuilder.UpdateCommonInfo(commonInfo, GroupType_FromAction);
14
-
15
- // 创建位置条件
16
- let conditionSet = setCondFunc(commonInfo);;
17
-
18
- let conditionSubCmds = acts;
19
-
20
- // 设置达到条件后的callback
21
- if (callback) {
22
- // callback接受参数为({xPos, yPos, xSpd, ySpd, xAcc, yAcc})
23
- conditionSubCmds.push(builderThis._CallbackManager.buildCallbackCmd(callback));
24
- }
25
-
26
- if (isFinal) {
27
- // 结束时清理临时condition
28
- conditionSubCmds.push(StateCmdBuilder.DelFromActionCondition());
29
- }
30
-
31
- // 挂载设置好的Sub command list
32
- ConditionSetBuilder.SetCmdList(conditionSet, conditionSubCmds);
33
-
34
- return StateCmdBuilder.NewCondition(conditionSet);
35
- }
36
-
37
- const ActOnReachPosition = (builderThis, xPos, yPos, acts, isFinal, callback) => {
38
- return ConditionCmdCreator(builderThis, (commonInfo) => {
39
- return ConditionSetBuilder.ReachPosition(xPos, yPos, commonInfo);
40
- }, acts, isFinal, callback);
41
- }
42
-
43
- const ActOnGetToSpeed = (builderThis, xSpeed, ySpeed, acts, isFinal, callback) => {
44
- return ConditionCmdCreator((commonInfo) => {
45
- return ConditionSetBuilder.ReachSpeed(xSpeed, ySpeed, commonInfo);
46
- }, acts, isFinal, callback);
47
- }
48
-
49
- class ActorPackBuilder {
50
- constructor(callbackManager) {
51
- this._CallbackManager = callbackManager;
52
-
53
- // 下一个Act指令时所保留的状态
54
- this._SpeedKeeps = 0;
55
- this._AccKeeps = 0;
56
- this._CommonInfoValid = false;
57
- }
58
-
59
- updateCommonInfo(xySpdEnables, xyAccEnables) {
60
- this._SpeedKeeps = xySpdEnables;
61
- this._AccKeeps = xyAccEnables;
62
- this._CommonInfoValid = true;
63
- }
64
-
65
- _CheckCommonInfo() {
66
- if (!this._CommonInfoValid) {
67
- console.error("Error: must call from new action()");
68
- return false;
69
- }
70
- return true;
71
- }
72
-
73
- /**
74
- * moveTo 以给定速度移动到目标位置
75
- *
76
- * @param {int} targetX 带符号整数,标识运动的目标位置,相对于Actor当前位置, 如果设置为undefined, 则表示该轴不设目标
77
- * @param {int} targetY 带符号整数,标识运动的目标位置,相对于Actor当前位置, 如果设置为undefined, 则表示该轴不设目标
78
- * @param {double} xSpeed 带符号整数,符号表示方向,标识运动的运行速度,单位(pixel/帧), 可设undefined代表不改变该轴速度
79
- * @param {double} ySpeed 带符号整数,符号表示方向,标识运动的运行速度,单位(pixel/帧), 可设undefined代表不改变该轴速度
80
- * @param {function} endCallback 参数(x, y) 运动到目标位置后的回调函数, x或者y达到后即回调,以先到为准,回报当前Actor的相对于原始位置的x,y
81
- * @return CommandPack(放入run或者then的CmdPackList队列)
82
- */
83
- moveTo(targetX, targetY, xSpeed, ySpeed, endCallback) {
84
- if (!this._BasicPreProcess("moveTo")) {
85
- return;
86
- }
87
-
88
- // x, y 都没有速度, 无内容
89
- if (!xSpeed && !ySpeed) {
90
- return null;
91
- }
92
-
93
- // 处理步骤备忘:
94
- // 1. 构造 command list (cmdList), 加入通过 ActionCmdBuilder 构建的各种改变速度的行为
95
- // 2. 构筑结束的条件处理(包含回调和 delFromActionCondtion 动作), 通过 StateCmdBuilder.NewCondtion 创建并加入 cmdList
96
- // 3. 通过 CmdPackBuilder.InitActCmdPack,送入 cmdList 和预设好的keep, 完成commandPack构建
97
-
98
- let cmdList = [];
99
-
100
- // 设置运动速度
101
- cmdList.push(ActionCmdBuilder.SetArrowSpeed(targetX, targetY, xSpeed, ySpeed));
102
-
103
- // 设置达到目标位置的condition
104
- cmdList.push(
105
- ActOnReachPosition(
106
- this,
107
- targetX, targetY,
108
- [ActionCmdBuilder.StopMoving()],
109
- true,
110
- (actorState) => {
111
- endCallback(actorState.xPos, actorState.yPos);
112
- }
113
- )
114
- );
115
-
116
- //return CmdPackBuilder.InitActCmdPack(this._SpeedKeeps, this._AccKeeps, cmdList);
117
-
118
- let c = CmdPackBuilder.InitActCmdPack(this._SpeedKeeps, this._AccKeeps, cmdList);
119
- return c;
120
- }
121
-
122
- /*
123
- * altSpeed 调整速度,costTime不为0时为平滑过渡
124
- * 参数说明:
125
- * xSpeed (double) 带符号整数,符号表示方向,标识运动的运行速度,单位(pixel/帧), 可设undefined代表不改变该轴速度
126
- * ySpeed (double) 带符号整数,符号表示方向,标识运动的运行速度,单位(pixel/帧), 可设undefined代表不改变该轴速度
127
- * spreadFrame (int) 选填,正整数, 变速需要经历帧数, 若为立即变速,则设置为0,或者不再设置(undefined)
128
- * finishCallback (Function(xSpeed, ySpeed)) 选填,达到目标速度后的回调,当costTime不为0时有效
129
- */
130
- altSpeed(xSpeed, ySpeed, spreadFrame, finishCallback) {
131
- if (!this._BasicPreProcess("altSpeed")) {
132
- return;
133
- }
134
-
135
- // 处理步骤备忘:
136
- // 1. 构造 command list (cmdList), 加入通过 ActionCmdBuilder 构建的各种改变速度的行为
137
- // 2. 构筑结束的条件处理(包含回调和 delFromActionCondtion 动作), 通过 StateCmdBuilder.NewCondtion 创建并加入 cmdList
138
- // 3. 通过 CmdPackBuilder.InitActCmdPack,送入 cmdList 和预设好的keep, 完成commandPack构建
139
-
140
- let cmdList = [];
141
-
142
- if (isNaN(spreadFrame) || spreadFrame == 0) {
143
- // 经历的帧数为0, 即为立即变速
144
- cmdList.push(ActionCmdBuilder.SetSpeed(xSpeed, ySpeed));
145
- return CmdPackBuilder.InitActCmdPack(this._SpeedKeeps, this._AccKeeps, cmdList);
146
- } else {
147
- // 均匀变速逻辑
148
- cmdList.push(ActionCmdBuilder.AltSpeed(xSpeed, ySpeed, spreadFrame));
149
-
150
- // 创建结束ConditionSet
151
- cmdList.push(
152
- ActOnGetToSpeed(
153
- this,
154
- xSpeed, ySpeed,
155
- [ActionCmdBuilder.ResetAcc(0, 0)],
156
- true, // isFinal
157
- (actorState) => {
158
- finishCallback(actorState.xSpd, actorState.ySpd);
159
- }
160
- )
161
- )
162
-
163
- return CmdPackBuilder.InitActCmdPack(this._SpeedKeeps, this._AccKeeps, cmdList);
164
- }
165
- }
166
-
167
- /*
168
- * breakToPosition 以当前速度开始,减速并停止到目标位置
169
- * 参数说明:
170
- * targetX (int) 带符号整数,目标运动终点位置,如果设置为undefined,标识不以此轴为终点
171
- * targetY (int) 带符号整数,目标运动终点位置,如果设置为undefined,标识不以此轴为终点
172
- * finishCallback (Function(x,y)) 运动到目标位置后的回调函数, x或者y达到后即回调,以先到为准,回报当前Actor的相对于原始位置的x,y
173
- */
174
- breakToPosition(targetX, targetY, finishCallback) {
175
- if (!this._BasicPreProcess("breakToPosition")) {
176
- return;
177
- }
178
-
179
- // 处理步骤备忘:
180
- // 1. 构造 command list (cmdList), 加入通过 ActionCmdBuilder 构建的各种改变速度的行为
181
- // 2. 构筑结束的条件处理(包含回调和 delFromActionCondtion 动作), 通过 StateCmdBuilder.NewCondtion 创建并加入 cmdList
182
- // 3. 通过 CmdPackBuilder.InitActCmdPack,送入 cmdList 和预设好的keep, 完成commandPack构建
183
-
184
- let cmdList = [];
185
-
186
- // 通过targetX和targetY以及内部当前的 xSpeed 和 ySpeed 状态,计算 xAcc 和 yAcc, 使运动接近目标位置时停止
187
- cmdList.push(ActionCmdBuilder.BreakToPos(targetX, targetY));
188
-
189
- // 创建结束ConditionSet
190
- cmdList.push(
191
- ActOnReachPosition(
192
- this,
193
- targetX, targetY,
194
- [ActionCmdBuilder.StopMoving()],
195
- true,
196
- (actorState) => {
197
- finishCallback(actorState.xPos, actorState.yPos);
198
- }
199
- )
200
- );
201
-
202
- return CmdPackBuilder.InitActCmdPack(this._SpeedKeeps, this._AccKeeps, cmdList);
203
- }
204
-
205
- _BasicPreProcess(procName) {
206
- // CommonInfo 只能使用一次,规避多次使用问题
207
- if (!this._CheckCommonInfo()) {
208
- return false;
209
- }
210
- this._CommonInfoValid = false;
211
-
212
- return true;
213
- }
214
- }
215
-
216
- export default ActorPackBuilder;
@@ -1,66 +0,0 @@
1
- /*
2
- * @Author: donglin.lu@qcast.cn
3
- * @Date: 2023-07-18 11:14:00
4
- * @LastEditors: donglin.lu@qcast.cn
5
- * @Description: file content
6
- */
7
-
8
- import { ConditionSetBuilder, StateCmdBuilder, CmdPackBuilder } from "./CommonTools.js"
9
-
10
- const setChildCommnadPackList = (conditionSet, callbackManager, cmdPackList) => {
11
- for (let i = 0; i < cmdPackList.length; i++) {
12
- if (typeof cmdPackList[i] == "function") {
13
- // 将回调函数更换为对应CommandPack, 内容为 FireEcho 的 stateCommand
14
- cmdPackList[i] = CmdPackBuilder.InitStateCmdPack(callbackManager.buildCallbackCmd(cmdPackList[i]));
15
- }
16
- }
17
-
18
- // 将此cmdPackList设置给ConditionSet
19
- ConditionSetBuilder.SetCmdPackList(conditionSet, cmdPackList);
20
- }
21
-
22
- class ConditionPackBuilder {
23
- constructor(callbackManager) {
24
- this._Callbacks = callbackManager;
25
- this._CommonInfo = ConditionSetBuilder.InitCommonInfo();
26
- this._CommonInfoValid = false;
27
- }
28
-
29
- updateCommandInfo(group, multiTimes, specName) {
30
- ConditionSetBuilder.UpdateCommonInfo(this._CommonInfo, group, multiTimes, specName);
31
- this._CommonInfoValid = true;
32
- }
33
-
34
- reachPosition(xPosition, yPosition) {
35
- // CommonInfo 只能使用一次,规避多次使用问题
36
- if (!this._CheckCommonInfo()) {
37
- return;
38
- }
39
- this._CommonInfoValid = false;
40
-
41
- return this._BuildPack(ConditionSetBuilder.ReachPosition(xPosition, yPosition, this._CommonInfo));
42
- }
43
-
44
- _CheckCommonInfo() {
45
- if (!this._CommonInfoValid) {
46
- console.error("Error: must call from new conditoin()");
47
- return false;
48
- }
49
- return true;
50
- }
51
-
52
- _BuildPack(conditionSet) {
53
- let cmdPack = CmdPackBuilder.InitStateCmdPack(StateCmdBuilder.NewCondition(conditionSet));
54
-
55
- // 追加then处理
56
- let callbackManager = this._Callbacks;
57
- cmdPack["then"] = (childCmdPackList) => {
58
- setChildCommnadPackList(conditionSet, callbackManager, childCmdPackList);
59
- return cmdPack;
60
- };
61
-
62
- return cmdPack;
63
- }
64
- }
65
-
66
- export default ConditionPackBuilder;
@@ -1,38 +0,0 @@
1
-
2
- import { ConditionSetBuilder, StateCmdBuilder, CmdPackBuilder, ActionCmdBuilder } from "./CommonTools.js"
3
-
4
- class StatePackBuilder {
5
- constructor() {
6
-
7
- }
8
-
9
- /*
10
- * clearConditions
11
- * 清理所有预制的condition
12
- */
13
- clearAllConditions() {
14
- return CmdPackBuilder.InitStateCmdPack(StateCmdBuilder.RemoveAllCondtions());
15
- }
16
-
17
- /*
18
- * jumpToPosition 立刻将actor移动到目标位置
19
- * 参数说明:
20
- * targetX (int) 带符号整数,目标位置,如果设置为undefined,标识不以此轴为终点
21
- * targetY (int) 带符号整数,目标位置,如果设置为undefined,标识不以此轴为终点
22
- */
23
- jumpToPos(targetX, targetY) {
24
- return CmdPackBuilder.InitStateCmdPack(StateCmdBuilder.SetPos(targetX, targetY));
25
- }
26
-
27
- /*
28
- * jumpOffsetPos 立刻将actor移动以当前位置相对位移的位置
29
- * 参数说明:
30
- * targetX (int) 带符号整数,目标位置,如果设置为undefined,标识不以此轴为终点
31
- * targetY (int) 带符号整数,目标位置,如果设置为undefined,标识不以此轴为终点
32
- */
33
- jumpOffsetPos(offsetX, offsetY) {
34
- return CmdPackBuilder.InitStateCmdPack(StateCmdBuilder.SetOffsetPos(offsetX, offsetY));
35
- }
36
- }
37
-
38
- export default StatePackBuilder;
@@ -1,12 +0,0 @@
1
- /*
2
- * @Author: donglin.lu@qcast.cn
3
- * @Date: 2023-07-18 11:14:00
4
- * @LastEditors: donglin.lu@qcast.cn
5
- * @Description: file content
6
- */
7
-
8
- const GroupType_FromAction = Forge.FreeMoveExternType?.GroupType_FromAction;
9
-
10
- export {
11
- GroupType_FromAction
12
- }
@@ -1,183 +0,0 @@
1
- <!--
2
- * @Author: ChenChanghua
3
- * @Date: 2022-04-10 20:46:53
4
- * @LastEditors: ChenChanghua
5
- * @LastEditTime: 2022-11-07 14:43:44
6
- * @Description: file content
7
- -->
8
- <script>
9
- import { Forge } from "@shijiu/jsview/dom/jsv-forge-define";
10
-
11
- const DIRECTION_HORIZONTAL = Forge.DragSetting.DIRECTION_HORIZONTAL;
12
- const DIRECTION_VERTICAL = Forge.DragSetting.DIRECTION_VERTICAL;
13
- const DIRECTION_DISABLE = Forge.DragSetting.DIRECTION_DISABLE;
14
- const DIRECTION_AUTO = Forge.DragSetting.DIRECTION_AUTO;
15
- export {
16
- DIRECTION_HORIZONTAL,
17
- DIRECTION_VERTICAL,
18
- DIRECTION_DISABLE,
19
- DIRECTION_AUTO,
20
- };
21
-
22
- export default {
23
- props: {
24
- style: {
25
- type: Object,
26
- default() {
27
- return {
28
- left: 0,
29
- top: 0,
30
- width: 1920,
31
- height: 600,
32
- };
33
- },
34
- },
35
- direction: DIRECTION_DISABLE,
36
- dragLimitArea: {
37
- type: Object,
38
- default() {
39
- return { x: 0, y: 0, width: 0, height: 0 };
40
- },
41
- },
42
- flingPageWidth: { type: Number, default: -1 }, // 滑动页的宽度,即开启整平滑动模式
43
- flingPageEdge: { type: Number, default: 1 / 5 }, // 触发整屏滑动页的边界,默认为1/5
44
- triggerMovedDistance: { type: Number, default: 20 }, // 触发onmoved的最小距离
45
- onClick: { type: Function },
46
- onDragStart: { type: Function },
47
- onMoved: { type: Function },
48
- onDragEnd: { type: Function },
49
- onFling: { type: Function },
50
- onRelease: { type: Function },
51
- },
52
- data() {
53
- return {
54
- innerLeft: 0,
55
- innerTop: 0,
56
- };
57
- },
58
- setup() {},
59
- methods: {
60
- _innerStyle() {
61
- const { left, top, ...others } = this.style;
62
- others.left = this.innerLeft;
63
- others.top = this.innerTop;
64
- return others;
65
- },
66
- },
67
- created() {},
68
- mounted() {
69
- const view = this.$refs.touchContainer?.jsvGetProxyView(true);
70
- if (view) {
71
- const page_width = this.flingPageWidth;
72
- const page_edge = this.flingPageEdge;
73
- const direction = this.direction;
74
- // 整屏滑动(启动tab模式,即flingPageWidth设置相应参数),dragLimitArea为固定值
75
- let drag_limit_area = this.dragLimitArea;
76
- if (page_width !== -1) {
77
- if (direction === Forge.DragSetting.DIRECTION_HORIZONTAL) {
78
- drag_limit_area = {
79
- x: 0,
80
- y: 0,
81
- width: page_width,
82
- height: this.$refs.touchContainer.style.height,
83
- };
84
- } else {
85
- drag_limit_area = {
86
- x: 0,
87
- y: 0,
88
- width: this.$refs.touchContainer.style.width,
89
- height: page_width,
90
- };
91
- }
92
- }
93
-
94
- const drag_setting = new Forge.DragSetting(
95
- direction,
96
- this.triggerMovedDistance,
97
- false,
98
- new Forge.RectArea(
99
- drag_limit_area.x,
100
- drag_limit_area.y,
101
- drag_limit_area.width,
102
- drag_limit_area.height
103
- ),
104
- page_width,
105
- page_edge
106
- );
107
- let callback = {};
108
- if (direction === Forge.DragSetting.DIRECTION_DISABLE) {
109
- callback.OnTap = (msg) => {
110
- console.log("Container OnTap:", msg);
111
- if (this.onClick) {
112
- return this.onClick(msg);
113
- }
114
- return false;
115
- };
116
- } else {
117
- callback = {
118
- OnTap: (msg) => {
119
- console.log("Container OnTap:", msg);
120
- if (this.onClick) {
121
- return this.onClick(msg);
122
- }
123
- return false;
124
- },
125
- OnDragStart: (msg) => {
126
- console.log("Container OnDragStart:", msg);
127
- if (this.onDragStart) {
128
- return this.onDragStart(msg);
129
- }
130
- return false;
131
- },
132
- OnMoved: (msg) => {
133
- console.log("Container OnMoved:", msg);
134
- if (this.onMoved) {
135
- return this.onMoved(msg);
136
- }
137
- return false;
138
- },
139
- OnDragEnd: (msg) => {
140
- console.log("Container OnDragEnd:", msg);
141
- if (this.onDragEnd) {
142
- return this.onDragEnd(msg);
143
- }
144
- return false;
145
- },
146
- OnFling: (msg) => {
147
- console.log("Container OnFling:", msg);
148
- if (this.onFling) {
149
- return this.onFling(msg);
150
- }
151
- return false;
152
- },
153
- OnRelease: (msg) => {
154
- console.log("Container OnRelease:", msg);
155
- if (this.onRelease) {
156
- return this.onRelease(msg);
157
- }
158
- return false;
159
- },
160
- };
161
- }
162
- view.EnableDrag(drag_setting, callback, "translateMat(dx,dy,0)");
163
- }
164
- },
165
- };
166
- </script>
167
-
168
- <template>
169
- <div
170
- key="containerPos"
171
- :style="{
172
- left: style.left,
173
- top: style.top,
174
- width: dragLimitArea.width ? dragLimitArea.width : style.width,
175
- height: dragLimitArea.height ? dragLimitArea.height : style.height,
176
- overflow: 'hidden',
177
- }"
178
- >
179
- <div key="container" ref="touchContainer" :style="_innerStyle()">
180
- <slot></slot>
181
- </div>
182
- </div>
183
- </template>
@@ -1,87 +0,0 @@
1
- <!--
2
- *
3
- * 【控件介绍】
4
- * JsvTransparentDiv:创建一个使native界面完全透过的div,注意: 这个层面下所有的div和本div重合的部分都不可见
5
- * style {Object} 布局样式(必须),必须包含的信息为{left, top, width, height}
6
- *
7
- -->
8
-
9
- <script>
10
- import { Forge } from "@shijiu/jsview/dom/jsv-forge-define";
11
- import ForgeHandles from "../JsViewVueTools/ForgeHandles";
12
-
13
- export default {
14
- inheritAttrs: false,
15
- props: {
16
- style: {
17
- Object,
18
- },
19
- },
20
- setup() {
21
- return {
22
- innerView: null,
23
- innerViewId: -1,
24
- html: !window.JsView,
25
- };
26
- },
27
- methods: {
28
- _updateInnerView() {
29
- if (this.innerView === null) {
30
- // 初始化View
31
-
32
- // 创建JsView图层穿透的texture,抠洞处理
33
- const seeThroughTexture = ForgeHandles.TextureManager.GetColorTexture("rgba(0,0,0,0)");
34
- const textureSetting = new Forge.TextureSetting(
35
- seeThroughTexture,
36
- null,
37
- null,
38
- false
39
- );
40
-
41
- // 通过内置函数构造定制的LayoutView
42
- this.innerView = new Forge.LayoutView(textureSetting);
43
- this.innerViewId = Forge.sViewStore.add(
44
- new Forge.ViewInfo(this.innerView)
45
- );
46
- }
47
- },
48
- },
49
- created() {
50
- this._updateInnerView();
51
- },
52
- updated() {
53
- this._updateInnerView();
54
- },
55
- beforeUnmount() {
56
- if (this.innerViewId !== -1) {
57
- Forge.sViewStore.remove(this.innerViewId);
58
- this.innerViewId = -1;
59
- this.innerView = null;
60
- }
61
- },
62
- };
63
- </script>
64
-
65
- <template>
66
- <div
67
- v-if="html"
68
- :style="{
69
- left: style.left,
70
- top: style.top,
71
- width: style.width,
72
- height: style.height,
73
- backgroundColor: '#0000FF',
74
- }"
75
- ></div>
76
- <div
77
- :data-jsv-vw-innerview="innerViewId"
78
- :style="{
79
- left: style.left,
80
- top: style.top,
81
- width: style.width,
82
- height: style.height
83
- }"
84
- >
85
- <slot></slot>
86
- </div>
87
- </template>