@shijiu/jsview-vue 1.9.648 → 1.9.719
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/package.json +7 -18
- package/samples/AnimPicture/App.vue +5 -5
- package/samples/Basic/components/div/DivLayout.vue +1 -1
- package/samples/Basic/components/text/TextOverflow.vue +10 -5
- package/samples/BasicFocusControl/components/BaseBlock.vue +2 -2
- package/samples/Collision/App.vue +452 -0
- package/samples/DemoHomepage/components/BodyFrame.vue +2 -0
- package/samples/DemoHomepage/router.js +21 -1
- package/samples/DemoHomepage/views/Homepage.vue +3 -7
- package/samples/FilterDemo/App.vue +1 -1
- package/samples/FlipCard/App.vue +2 -2
- package/samples/FlipCard/FlipCard.vue +2 -2
- package/samples/GridDemo/App.vue +3 -3
- package/samples/GridDemo/ButtonBlock.vue +2 -2
- package/samples/GridDemo/FocusItem.vue +2 -2
- package/samples/GridDemo/Item.vue +1 -1
- package/samples/HashHistory/App.vue +10 -3
- package/samples/HashHistory/components/Item.vue +1 -1
- package/samples/ImpactStop/App.vue +435 -0
- package/samples/Input/App.vue +8 -17
- package/samples/Input/InputPanel.vue +19 -12
- package/samples/LongImage/Button.vue +1 -1
- package/samples/LongImage/ButtonItem.vue +1 -1
- package/samples/LongImage/LongImageScroll.vue +2 -2
- package/samples/LongText/App.vue +1 -1
- package/samples/LongText/Button.vue +1 -1
- package/samples/LongText/ButtonItem.vue +1 -1
- package/samples/LongText/LongTextScroll.vue +3 -3
- package/samples/Marquee/App.vue +176 -40
- package/samples/Marquee/longText.js +14 -0
- package/samples/MetroWidgetDemos/Advanced/App.vue +5 -6
- package/samples/MetroWidgetDemos/Advanced/ButtonItem.vue +3 -3
- package/samples/MetroWidgetDemos/Advanced/Buttons.vue +5 -5
- package/samples/MetroWidgetDemos/Advanced/Mixed.vue +4 -4
- package/samples/MetroWidgetDemos/Advanced/widgets/Item.vue +83 -0
- package/samples/MetroWidgetDemos/Advanced/widgets/WidgetItem.vue +89 -0
- package/samples/MetroWidgetDemos/Advanced/{Widgets.vue → widgets/Widgets.vue} +56 -11
- package/samples/MetroWidgetDemos/Advanced/widgets/focus1.png +0 -0
- package/samples/MetroWidgetDemos/Item.vue +20 -2
- package/samples/MetroWidgetDemos/PerformanceTest/App.vue +4 -4
- package/samples/MetroWidgetDemos/PerformanceTest/components/ContentItem.vue +1 -1
- package/samples/MetroWidgetDemos/PerformanceTest/components/MyTab.vue +1 -1
- package/samples/MetroWidgetDemos/PingPong/App.vue +3 -3
- package/samples/MetroWidgetDemos/PingPong/AppPage.vue +17 -2
- package/samples/MetroWidgetDemos/PingPong/AppTab.vue +3 -10
- package/samples/MetroWidgetDemos/PingPong/{Item.vue → TabItem.vue} +3 -11
- package/samples/MetroWidgetDemos/PingPong/ViewSwiper.vue +2 -2
- package/samples/MetroWidgetDemos/Simple/AbsoluteTemplate.vue +2 -2
- package/samples/MetroWidgetDemos/Simple/App.vue +2 -2
- package/samples/MetroWidgetDemos/Simple/RelativeTemplate.vue +6 -6
- package/samples/MetroWidgetDemos/WidgetItem.vue +2 -2
- package/samples/MetroWidgetDemos/data.js +2 -1
- package/samples/NinePatchDemo/App.vue +2 -2
- package/samples/NinePatchDemo/Item.vue +1 -1
- package/samples/Preload/App.vue +17 -12
- package/samples/Preload/Item.vue +1 -1
- package/samples/QrcodeDemo/App.vue +1 -1
- package/samples/ScaleDownNeon/App.vue +107 -0
- package/samples/SoundPool/App.vue +1 -1
- package/samples/TextBox/App.vue +9 -82
- package/samples/TextBox/RenderCenter.vue +40 -16
- package/samples/TextBox/RenderLeft.vue +48 -19
- package/samples/TextBox/RenderOneLine.vue +30 -49
- package/samples/TextBox/RenderRight.vue +40 -16
- package/samples/TextShadowDemo/App.vue +11 -17
- package/samples/TextureAnimation/App2.vue +43 -15
- package/samples/TextureAnimation/assets/light.png +0 -0
- package/samples/TextureAnimation/assets/light2.png +0 -0
- package/samples/TextureSize/App.vue +3 -3
- package/samples/TouchSample/MetroWidgetHorizontal.vue +1 -1
- package/samples/TouchSample/MetroWidgetVertical.vue +1 -1
- package/samples/TransitPage/App.vue +1 -1
- package/samples/VideoDemo/App.vue +8 -8
- package/samples/VideoDemo/components/Button.vue +1 -1
- package/samples/VisibleSensorDemo/App.vue +94 -27
- package/tsconfig.json +6 -6
- package/utils/JsViewEngineWidget/JsvFocusBlock.vue +55 -59
- package/utils/JsViewEngineWidget/JsvFocusManager.js +1 -1
- package/utils/JsViewEngineWidget/MetroWidget/Const.js +11 -0
- package/utils/JsViewEngineWidget/MetroWidget/MetroWidget.vue +226 -107
- package/utils/JsViewEngineWidget/TemplateParser.js +227 -178
- package/utils/JsViewEngineWidget/WidgetCommon.js +13 -5
- package/utils/JsViewEngineWidget/index.js +3 -2
- package/utils/JsViewPlugin/BrowserPluginLoader.js +1 -1
- package/utils/JsViewPlugin/JsvPlayer/JsvMedia.js +95 -12
- package/utils/JsViewPlugin/JsvPlayer/JsvPlayer.vue +23 -2
- package/utils/JsViewPlugin/JsvPlayer/JsvPlayerBrowser.vue +1 -1
- package/utils/JsViewPlugin/JsvPlayer/index.js +22 -1
- package/utils/JsViewPlugin/JsvPlayer/version.js +4 -4
- package/utils/JsViewVueTools/JsvImpactTracer.js +113 -0
- package/utils/JsViewVueTools/JsvStyleClass.js +1 -1
- package/utils/JsViewVueTools/index.js +2 -1
- package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +11 -1
- package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserSpray.vue +1 -1
- package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserTextureAnim.vue +7 -9
- package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +1 -1
- package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +3 -3
- package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +1 -1
- package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +5 -5
- package/utils/JsViewVueWidget/JsvFilterView.vue +1 -1
- package/utils/JsViewVueWidget/JsvGrid.vue +3 -11
- package/utils/JsViewVueWidget/JsvInput/Cursor.vue +5 -3
- package/utils/JsViewVueWidget/JsvInput/JsvInput.vue +15 -14
- package/utils/JsViewVueWidget/JsvMarquee.vue +180 -207
- package/utils/JsViewVueWidget/JsvMaskClipDiv.vue +2 -2
- package/utils/JsViewVueWidget/JsvNativeSharedDiv.vue +35 -27
- package/utils/JsViewVueWidget/JsvNinePatch.vue +1 -2
- package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +38 -42
- package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +1 -1
- package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +1 -1
- package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +24 -8
- package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +23 -3
- package/utils/JsViewVueWidget/JsvTextBox.vue +20 -86
- package/utils/JsViewVueWidget/JsvTextureAnim/JsvTextureAnim.vue +2 -9
- package/utils/JsViewVueWidget/JsvTouchContainer.vue +6 -7
- package/utils/JsViewVueWidget/JsvTransparentDiv.vue +1 -1
- package/utils/JsViewVueWidget/JsvVisibleSensor/JsvVisibleSensor.vue +6 -6
- package/utils/JsViewVueWidget/index.js +8 -8
- package/utils/JsViewVueWidget/utils/index.js +8 -0
- package/utils/JsViewVueWidget/utils/text.js +19 -0
- package/dom/bin/jsview-browser-debug-dom.min.js +0 -1
- package/dom/bin/jsview-dom.min.js +0 -1
- package/dom/bin/jsview-forge-define.min.js +0 -1
- package/dom/browser-root-style.css +0 -21
- package/dom/jsv-browser-debug-dom.js +0 -8
- package/dom/jsv-dom.js +0 -6
- package/dom/jsv-forge-define.js +0 -6
- package/dom/target_core_revision.mjs +0 -15
- package/loader/header_script_loader.js +0 -134
- package/loader/jsview-main.js +0 -42
- package/loader/jsview.config.default.js +0 -37
- package/loader/jsview.default.config.js +0 -37
- package/loader/loader.js +0 -179
- package/loader/loader_webkit.js +0 -40
- package/patches/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js +0 -17609
- package/patches/node_modules/@vue/compiler-sfc/dist/jsview-css-to-js.js +0 -335
- package/patches/node_modules/@vue/compiler-sfc/dist/jsview-style-format.js +0 -446
- package/patches/node_modules/@vue/compiler-sfc/dist/jsview-style-types.js +0 -91
- package/patches/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +0 -8038
- package/patches/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +0 -1700
- package/patches/node_modules/postcss-js/objectifier.js +0 -90
- package/patches/node_modules/vite/dist/node/chunks/dep-0fc8e132.js +0 -63147
- package/patches/node_modules/vite/dist/node/jsview.vite.config.js +0 -50
- package/patches/node_modules/vue-router/dist/vue-router.mjs +0 -3595
- package/scripts/common.js +0 -58
- package/scripts/jsview-install-local-packages.js +0 -73
- package/scripts/jsview-jsmap-serve.js +0 -105
- package/scripts/jsview-post-build.js +0 -183
- package/scripts/jsview-post-install.js +0 -102
- package/scripts/jsview-run-android.js +0 -67
- package/utils/JsViewEngineWidget/MetroPage.js +0 -2128
- package/utils/JsViewEngineWidget/SimpleWidget/ContentView.vue +0 -51
- package/utils/JsViewEngineWidget/SimpleWidget/Dispatcher.js +0 -19
- package/utils/JsViewEngineWidget/SimpleWidget/DivWrapper.vue +0 -53
- package/utils/JsViewEngineWidget/SimpleWidget/ItemView.vue +0 -142
- package/utils/JsViewEngineWidget/SimpleWidget/RootView.vue +0 -140
- package/utils/JsViewEngineWidget/SimpleWidget/SimpleWidget.vue +0 -1629
|
@@ -190,7 +190,7 @@ function findMediaObjectByKey(key){
|
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
class JsvBaseMedia {
|
|
193
|
-
constructor(type, hole_id, player_type, key, background, design_map_width, decode_type) {
|
|
193
|
+
constructor(type, window_mode, hole_id, player_type, key, background, design_map_width, decode_type) {
|
|
194
194
|
logTrace("Create JsvBaseMedia, type="+type+", hole_id="+hole_id+", player_type="+player_type+", key="+key+", background="+background+", design_map_width="+design_map_width+", decode_type="+decode_type);
|
|
195
195
|
|
|
196
196
|
this.state = {
|
|
@@ -206,6 +206,7 @@ class JsvBaseMedia {
|
|
|
206
206
|
timeUpdateLess: false,
|
|
207
207
|
rate: 1.0,
|
|
208
208
|
volume: 1.0,
|
|
209
|
+
chromaKey: null,
|
|
209
210
|
};
|
|
210
211
|
|
|
211
212
|
this.local = {
|
|
@@ -219,6 +220,7 @@ class JsvBaseMedia {
|
|
|
219
220
|
this.type = type;
|
|
220
221
|
this.playerCreate = false;
|
|
221
222
|
this.key = key;
|
|
223
|
+
this.windowMode = window_mode;
|
|
222
224
|
this.background = background;
|
|
223
225
|
this.holeId = hole_id;
|
|
224
226
|
this.holeIdModify = hole_id;
|
|
@@ -265,7 +267,7 @@ class JsvBaseMedia {
|
|
|
265
267
|
|
|
266
268
|
let share_view = true;
|
|
267
269
|
|
|
268
|
-
let result = window.jsvPlayerBridge.CreatePlayer(this.key, this.holeId, this.background, this.designMapWidth, share_view, this.playerType, this.decodeType, "top.CreatePlayerResult");
|
|
270
|
+
let result = window.jsvPlayerBridge.CreatePlayer(this.key, this.windowMode, this.holeId, this.background, this.designMapWidth, share_view, this.playerType, this.decodeType, "top.CreatePlayerResult");
|
|
269
271
|
if(result > 0){
|
|
270
272
|
this.initPlayer();
|
|
271
273
|
}
|
|
@@ -341,6 +343,10 @@ class JsvBaseMedia {
|
|
|
341
343
|
if(this.state["aspectRatio"] !== "origin"){
|
|
342
344
|
this.setState("aspectRatio", this.state["aspectRatio"], "string");
|
|
343
345
|
}
|
|
346
|
+
|
|
347
|
+
if(this.state["chromaKey"]){
|
|
348
|
+
this.setState("chromaKey", this.state["chromaKey"], "string");
|
|
349
|
+
}
|
|
344
350
|
}
|
|
345
351
|
|
|
346
352
|
onVisibilityChangeCallBack(){
|
|
@@ -841,7 +847,7 @@ class JsvBaseMedia {
|
|
|
841
847
|
* 属性,string类型,播放地址,不支持读取。
|
|
842
848
|
*/
|
|
843
849
|
set src(value) {
|
|
844
|
-
this.setSrc(value, null, 1)
|
|
850
|
+
this.setSrc(value, null, null, 1)
|
|
845
851
|
}
|
|
846
852
|
|
|
847
853
|
/**
|
|
@@ -890,17 +896,26 @@ class JsvBaseMedia {
|
|
|
890
896
|
/**
|
|
891
897
|
* 设置播放地址。
|
|
892
898
|
* @param {string} url 播放地址。
|
|
899
|
+
* @param {String} windowMode 播放器窗口模式。
|
|
900
|
+
* null:使用this.windowMode作为窗口模式。
|
|
901
|
+
* full:观影模式,全屏方式,不建议修改w/h/l/t,视频清晰度/流畅度最佳;
|
|
902
|
+
* resizable:可变窗口模式,可以随意修改w/h/l/t,支持动画效果,视频清晰度/流畅度表现可能不如full模式;
|
|
903
|
+
* pip:画中画模式,只在支持多路硬解的情况下使用,用户画中画的小窗播放,对清晰度/流畅度要求较差,可能会有反交错问题。
|
|
893
904
|
* @param {string} head 网络请求的head信息,可以为NULL。
|
|
894
|
-
* @param {int} type 类型,1表示点播,2表示直播,3
|
|
905
|
+
* @param {int} type 类型,1表示点播,2表示直播,3表示时移,4表示回看,默认1。
|
|
895
906
|
* @param {double} timeShift 时移时间,只有在type=3时才有效,表示从当前时间时移多长时间,单位秒。
|
|
896
907
|
* @param {int} 分辨率类型 0:unknown或其它;1:标清;2:高清;3:超清(720P);4:蓝光(1080P);5:2K;6:4K;7:8K。
|
|
908
|
+
* @param {int} 用户频道号,只在直播回看状态下需要设置
|
|
897
909
|
*/
|
|
898
|
-
setSrc(url, head, type, timeShift, resolution){
|
|
910
|
+
setSrc(url, windowMode, head, type, timeShift, resolution, mixNo){
|
|
899
911
|
let src = {};
|
|
900
912
|
src.url = url;
|
|
901
913
|
if(head){
|
|
902
914
|
src.head = head;
|
|
903
915
|
}
|
|
916
|
+
if(windowMode){
|
|
917
|
+
src.windowMode = windowMode;
|
|
918
|
+
}
|
|
904
919
|
if(type){
|
|
905
920
|
src.type = type;
|
|
906
921
|
}else{
|
|
@@ -914,6 +929,10 @@ class JsvBaseMedia {
|
|
|
914
929
|
src.resolution = resolution;
|
|
915
930
|
}
|
|
916
931
|
|
|
932
|
+
if(mixNo && typeof mixNo == "number"){
|
|
933
|
+
src.channelID = mixNo;
|
|
934
|
+
}
|
|
935
|
+
|
|
917
936
|
this.currentEventStatus = EVENT_STATUS_NONE;
|
|
918
937
|
this.setState("src", JSON.stringify(src), "string");
|
|
919
938
|
this.eventReport = true;
|
|
@@ -1154,12 +1173,46 @@ class JsvBaseMedia {
|
|
|
1154
1173
|
* @param {double} time,值为从当前时间计算向前移动了多长时间,单位秒。
|
|
1155
1174
|
*/
|
|
1156
1175
|
setTimeShift(time){
|
|
1157
|
-
logTrace("setTimeShift, key="+this.key+", time"+time);
|
|
1176
|
+
logTrace("setTimeShift, key="+this.key+", time="+time);
|
|
1158
1177
|
if(this.playerCreate && this.appVisible){
|
|
1159
1178
|
window.jsvPlayerBridge.setTimeShift(this.key, time);
|
|
1160
1179
|
}
|
|
1161
1180
|
}
|
|
1162
1181
|
|
|
1182
|
+
/**
|
|
1183
|
+
* 设置色度抠像参数,只支持扣绿。
|
|
1184
|
+
* 参考格式:{color: 0x30FF30, colorDistance: 0.15, edgeDistance: 0.4, greenOffset: 0.05}
|
|
1185
|
+
* @param {JSON object} chromaKey,抠像参数,JSON Object包含的参数如下:
|
|
1186
|
+
* color,色值,int类型,为抠图色值范围的中心点,格式为0xRRGGBB。
|
|
1187
|
+
* colorDistance,float类型,色域范围,范围0-1.0。
|
|
1188
|
+
* edgeDistance,float类型,alpha透明度距离,范围colorDistance-1.0,从colorDistance到edgeDistance的alpha值从1.0-0线性递减。
|
|
1189
|
+
* greenOffset,float类型,红蓝差值,范围0-1.0。
|
|
1190
|
+
*/
|
|
1191
|
+
setChromaKey(chromaKey){
|
|
1192
|
+
logTrace("setChromaKey, key="+this.key+", chroma key="+JSON.stringify(chromaKey));
|
|
1193
|
+
this.setState("chromaKey", JSON.stringify(chromaKey), "string");
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
setDebugMode(mode){
|
|
1197
|
+
logTrace("setDebugMode, key="+this.key+", mode="+mode);
|
|
1198
|
+
if(typeof window.jsvPlayerBridge !== "undefined"){
|
|
1199
|
+
return window.jsvPlayerBridge.setDebugMode(this.key, mode);
|
|
1200
|
+
}
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1203
|
+
/**
|
|
1204
|
+
* 获取是否支持倍速设置,在onCanPlay事件发送以后,通过此接口查询。
|
|
1205
|
+
* @returns {boolean} true:支持播放倍速设置;false:不支持播放倍速设置。
|
|
1206
|
+
* */
|
|
1207
|
+
supportPlaybackRateSet(){
|
|
1208
|
+
logTrace("supportPlaybackRateSet, key="+this.key);
|
|
1209
|
+
if(typeof window.jsvPlayerBridge !== "undefined"){
|
|
1210
|
+
return window.jsvPlayerBridge.supportRateSet(this.key);
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
return false;
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1163
1216
|
/**
|
|
1164
1217
|
* 私有接口,外部不需要调用此接口。
|
|
1165
1218
|
*/
|
|
@@ -1215,21 +1268,21 @@ class JsvBaseMedia {
|
|
|
1215
1268
|
}
|
|
1216
1269
|
|
|
1217
1270
|
class JsvMedia extends JsvBaseMedia {
|
|
1218
|
-
constructor(type, hole_id, player_type, key, background, design_map_width, decode_type) {
|
|
1219
|
-
super(type, hole_id, player_type, key, background, design_map_width, decode_type);
|
|
1271
|
+
constructor(type, window_mode, hole_id, player_type, key, background, design_map_width, decode_type) {
|
|
1272
|
+
super(type, window_mode, hole_id, player_type, key, background, design_map_width, decode_type);
|
|
1220
1273
|
//super.buildPlatformInstance(type);
|
|
1221
1274
|
}
|
|
1222
1275
|
}
|
|
1223
1276
|
|
|
1224
1277
|
class JsvMediaAudio extends JsvMedia {
|
|
1225
1278
|
constructor() {
|
|
1226
|
-
super("audio", null, null, null, null, null, 0);
|
|
1279
|
+
super("audio", "resizable", null, null, null, null, null, 0);
|
|
1227
1280
|
}
|
|
1228
1281
|
}
|
|
1229
1282
|
|
|
1230
1283
|
class JsvMediaVideo extends JsvMedia {
|
|
1231
|
-
constructor(hole_id, player_type, key, background, design_map_width, decode_type) {
|
|
1232
|
-
super("video", hole_id, player_type, key, background, design_map_width, decode_type);
|
|
1284
|
+
constructor(hole_id, window_mode, player_type, key, background, design_map_width, decode_type) {
|
|
1285
|
+
super("video", window_mode, hole_id, player_type, key, background, design_map_width, decode_type);
|
|
1233
1286
|
|
|
1234
1287
|
this.state.aspectRatio = 'origin'; // 'origin', 'full', '16:9', '4:3',
|
|
1235
1288
|
}
|
|
@@ -1286,7 +1339,7 @@ function getJsvPlayerCapabilitySet(){
|
|
|
1286
1339
|
* 支持三个属性:1、total:总的播放器个数;2、hardware:硬解播放器个数;3、软解播放器个数,如果硬解播放器个数不满足需求,会根据cpu能力确定是否提供软解播放器。
|
|
1287
1340
|
* */
|
|
1288
1341
|
function setJsvPlayerNumber(videoType, num){
|
|
1289
|
-
logTrace("setPlayerNumber,
|
|
1342
|
+
logTrace("setPlayerNumber, videoType="+videoType+", num="+num);
|
|
1290
1343
|
if(typeof window.jsvPlayerBridge !== "undefined"){
|
|
1291
1344
|
return window.jsvPlayerBridge.setPlayerNumber(videoType, num);
|
|
1292
1345
|
}else{
|
|
@@ -1294,10 +1347,37 @@ function setJsvPlayerNumber(videoType, num){
|
|
|
1294
1347
|
}
|
|
1295
1348
|
}
|
|
1296
1349
|
|
|
1350
|
+
function setJsvPlayerDebugMode(mode){
|
|
1351
|
+
logTrace("setJsvPlayerDebugMode, mode="+mode);
|
|
1352
|
+
if(typeof window.jsvPlayerBridge !== "undefined"){
|
|
1353
|
+
window.jsvPlayerBridge.setDebugMode(null, mode);
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1356
|
+
|
|
1357
|
+
function getJsvPlayerRunningNum(){
|
|
1358
|
+
logTrace("getJsvPlayerRunningNum");
|
|
1359
|
+
if(typeof window.jsvPlayerBridge !== "undefined"){
|
|
1360
|
+
return window.jsvPlayerBridge.getRunningPlayerNum();
|
|
1361
|
+
}
|
|
1362
|
+
return -1;
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1365
|
+
function setOperator(operator){
|
|
1366
|
+
logTrace("setOperator");
|
|
1367
|
+
if(typeof window.jsvPlayerBridge !== "undefined"){
|
|
1368
|
+
return window.jsvPlayerBridge.setOperator(operator);
|
|
1369
|
+
}
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
function globalLoadSetOperator(operator){
|
|
1373
|
+
setOperator(operator)
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1297
1376
|
export {
|
|
1298
1377
|
JsvMediaVideo,
|
|
1299
1378
|
JsvMediaAudio,
|
|
1300
1379
|
globalLoadJsvPlayerPlugin,
|
|
1380
|
+
globalLoadSetOperator,
|
|
1301
1381
|
findMediaObjectByKey,
|
|
1302
1382
|
getJsvPlayerCapabilitySet,
|
|
1303
1383
|
setJsvPlayerNumber,
|
|
@@ -1307,4 +1387,7 @@ export {
|
|
|
1307
1387
|
logWarning,
|
|
1308
1388
|
logDebug,
|
|
1309
1389
|
logTrace,
|
|
1390
|
+
setJsvPlayerDebugMode,
|
|
1391
|
+
getJsvPlayerRunningNum,
|
|
1392
|
+
setOperator,
|
|
1310
1393
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import {JsvMediaVideo, findMediaObjectByKey, logDebug} from './JsvMedia'
|
|
3
|
-
import JsvNativeSharedDiv from '
|
|
3
|
+
import JsvNativeSharedDiv from '../../JsViewVueWidget/JsvNativeSharedDiv.vue'
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
export default {
|
|
@@ -18,6 +18,13 @@ export default {
|
|
|
18
18
|
* 属性,String类型,播放器实例索引,同样的key使用同一个播放器实例。
|
|
19
19
|
*/
|
|
20
20
|
playerKey: { type: String, default: null},
|
|
21
|
+
/**
|
|
22
|
+
* 属性,String类型,播放器窗口模式,默认resizable模式。
|
|
23
|
+
* full:观影模式,全屏方式,不建议修改w/h/l/t,视频清晰度/流畅度最佳;
|
|
24
|
+
* resizable:可变窗口模式,可以随意修改w/h/l/t,支持动画效果,视频清晰度/流畅度表现可能不如full模式;
|
|
25
|
+
* pip:画中画模式,只在支持多路硬解的情况下使用,用户画中画的小窗播放,对清晰度/流畅度要求较差,可能会有反交错问题。
|
|
26
|
+
*/
|
|
27
|
+
windowMode: {type: String, default: "resizable"},
|
|
21
28
|
/**
|
|
22
29
|
* 属性,int类型,底层使用的播放器类型。1:系统播放器;2:jsv播放器。默认2。
|
|
23
30
|
*/
|
|
@@ -54,6 +61,16 @@ export default {
|
|
|
54
61
|
* 属性,String类型,视频显示比例,origin原始比例显示,full全屏显示,x:y按照指定比例显示。
|
|
55
62
|
*/
|
|
56
63
|
videoAspectRatio: {type: String, default: "origin"},
|
|
64
|
+
/**
|
|
65
|
+
* 属性,JSON Object类型,色度抠像参数,包含color,colorDistance,edgeDistance,greenOffset四个参数,
|
|
66
|
+
* 参考格式:{color: 0x30FF30, colorDistance: 0.15, edgeDistance: 0.4, greenOffset: 0.05}
|
|
67
|
+
* color,色值,int类型,为抠图色值范围的中心点,格式为0xRRGGBB。
|
|
68
|
+
* colorDistance,float类型,色域范围,范围0-1.0。
|
|
69
|
+
* edgeDistance,float类型,alpha透明度距离,范围colorDistance-1.0,从colorDistance到edgeDistance的alpha值从1.0-0线性递减。
|
|
70
|
+
* greenOffset,float类型,红蓝差值,范围0-1.0。
|
|
71
|
+
* 目前只支持扣绿。
|
|
72
|
+
*/
|
|
73
|
+
chromaKey: {type: Object, default: null},
|
|
57
74
|
/**
|
|
58
75
|
* 回调函数,播放结束时通过此回调接口通知。
|
|
59
76
|
*/
|
|
@@ -226,7 +243,7 @@ export default {
|
|
|
226
243
|
let first_create = true;
|
|
227
244
|
|
|
228
245
|
if(!this.video){
|
|
229
|
-
this.video = new JsvMediaVideo(this.holeId, player_type, key, background, designMap.width, this.decodeType);
|
|
246
|
+
this.video = new JsvMediaVideo(this.holeId, this.windowMode, player_type, key, background, designMap.width, this.decodeType);
|
|
230
247
|
}else{
|
|
231
248
|
this.video.setRef();
|
|
232
249
|
first_create = false;
|
|
@@ -262,6 +279,10 @@ export default {
|
|
|
262
279
|
if(this.videoAspectRatio !== "origin"){
|
|
263
280
|
this.video.videoAspectRatio = this.videoAspectRatio;
|
|
264
281
|
}
|
|
282
|
+
|
|
283
|
+
if(this.chromaKey && this.chromaKey !== ""){
|
|
284
|
+
this.video.setChromaKey(this.chromaKey)
|
|
285
|
+
}
|
|
265
286
|
//}else{
|
|
266
287
|
if(!first_create){
|
|
267
288
|
this.video.setHoleID(this.holeId);
|
|
@@ -2,10 +2,17 @@
|
|
|
2
2
|
import * as JsvPlayer from "./JsvPlayer.vue";
|
|
3
3
|
import { globalLoadJsvPlayerPlugin as initPlugin } from "./JsvMedia.js"
|
|
4
4
|
import { getJsvPlayerCapabilitySet as getCapabilitySet } from "./JsvMedia.js"
|
|
5
|
+
import { setJsvPlayerDebugMode as setDebugMode } from "./JsvMedia.js"
|
|
6
|
+
import { getJsvPlayerRunningNum as getRunningPlayerNum } from "./JsvMedia.js"
|
|
7
|
+
import { globalLoadSetOperator as setOperator } from"./JsvMedia.js"
|
|
5
8
|
let _JsvPlayer = JsvPlayer;
|
|
6
9
|
|
|
7
10
|
let globalLoadJsvPlayerPlugin = initPlugin;
|
|
8
11
|
let getJsvPlayerCapabilitySet = getCapabilitySet;
|
|
12
|
+
let setJsvPlayerDebugMode = setDebugMode;
|
|
13
|
+
let getJsvPlayerRunningNum = getRunningPlayerNum;
|
|
14
|
+
let globalLoadSetOperator = setOperator;
|
|
15
|
+
|
|
9
16
|
if (window.JsvWidgetWrapperGroup?.BrowserJsvPlayer) {
|
|
10
17
|
// 浏览器版本
|
|
11
18
|
_JsvPlayer = window.JsvWidgetWrapperGroup.BrowserJsvPlayer;
|
|
@@ -19,6 +26,18 @@ if (window.JsvWidgetWrapperGroup?.BrowserJsvPlayer) {
|
|
|
19
26
|
getJsvPlayerCapabilitySet = () => {
|
|
20
27
|
return null;
|
|
21
28
|
}
|
|
29
|
+
|
|
30
|
+
setJsvPlayerDebugMode = () => {
|
|
31
|
+
console.log("Set debug mode");
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
getJsvPlayerRunningNum = () => {
|
|
35
|
+
return -1;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
globalLoadSetOperator = (operator)=>{
|
|
39
|
+
console.log("operator is "+operator);
|
|
40
|
+
}
|
|
22
41
|
}
|
|
23
42
|
|
|
24
43
|
let component = _JsvPlayer.default;
|
|
@@ -27,5 +46,7 @@ export default component;
|
|
|
27
46
|
export {
|
|
28
47
|
globalLoadJsvPlayerPlugin, // 全局初始化播放器插件处理
|
|
29
48
|
getJsvPlayerCapabilitySet, //获取设备能力集
|
|
30
|
-
|
|
49
|
+
setJsvPlayerDebugMode, //设置调试模式,可以查看帧率等信息
|
|
50
|
+
getJsvPlayerRunningNum, //获取正在运行的播放器个数
|
|
51
|
+
globalLoadSetOperator,// 设置运营商
|
|
31
52
|
}
|
|
@@ -2,16 +2,16 @@ let PluginInfo={
|
|
|
2
2
|
// downloadUrl:"http://192.168.0.63:8080/plugin/JsvPlayer-164.zip", //插件下载地址
|
|
3
3
|
packageName:"com.qcode.jsvplayer",
|
|
4
4
|
name:"播放器插件",
|
|
5
|
-
version:"1.
|
|
6
|
-
versionCodeMin:
|
|
7
|
-
versionCodeMax:
|
|
5
|
+
version:"1.8.6", //插件需要的版本号
|
|
6
|
+
versionCodeMin:186,
|
|
7
|
+
versionCodeMax:186,
|
|
8
8
|
bridgeName:"jsvPlayerBridge", //插件bridge注册到jsview的名称
|
|
9
9
|
className:"com.qcode.jsvplayer.JsvPlayer", //插件初始化类名称
|
|
10
10
|
initMethod:"createInstance", //插件初始化方法
|
|
11
11
|
listener:"top.JsvPlayerPluginLoadResult", //插件加载结果回调
|
|
12
12
|
listener2: "top.JsvPlayerPluginStatus",
|
|
13
13
|
// debug:true,
|
|
14
|
-
md5:"
|
|
14
|
+
md5:"1371d41e658d20b4b29477a3c7649654"
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
// 不要用export default,update-env脚本不能解析
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: ChenChanghua
|
|
3
|
+
* @Date: 2022-08-30 10:54:42
|
|
4
|
+
* @LastEditors: ChenChanghua
|
|
5
|
+
* @LastEditTime: 2022-08-30 10:54:44
|
|
6
|
+
* @Description: file content
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Created by donglin.lu@qcast.cn on 4/30/2020.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/*
|
|
13
|
+
* 【模块 export 内容】
|
|
14
|
+
* createImpactTracer: 函数,创建碰撞跟踪对象
|
|
15
|
+
* createImpactCallback: 函数,创建碰撞发生后的回调函数
|
|
16
|
+
* createImpactAutoFroze: 函数,注册碰撞发生后,控制动画立刻停止的管理对象
|
|
17
|
+
* updateImpactAutoFroze: 函数,更新 createImpactAutoFroze 创建的碰撞即停管理对象中管理的运动元素列表
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { Forge } from "../../../jsview/dom/jsv-forge-define";
|
|
21
|
+
|
|
22
|
+
/*
|
|
23
|
+
* createImpactCallback 参数说明:
|
|
24
|
+
* on_contact (function[]) 接受碰撞事件的回调
|
|
25
|
+
* on_dis_contact (function[]) 接受物体分离事件的回调
|
|
26
|
+
* 返回值:
|
|
27
|
+
* Object 句柄,用于传输给 createImpactTracer
|
|
28
|
+
*/
|
|
29
|
+
function createImpactCallback(on_contact, on_dis_contact) {
|
|
30
|
+
return new Forge.sImpactSensorManager.Callback(on_contact, on_dis_contact);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/*
|
|
34
|
+
* createImpactTracer 参数说明:
|
|
35
|
+
* ele1 (Element) html element句柄,1号碰撞体
|
|
36
|
+
* ele2 (Element) html element句柄,2号碰撞体
|
|
37
|
+
* callback (Object) 由 createImpactCallback 创建的回调构造体句柄
|
|
38
|
+
* auto_froze (Object) 由 createImpactAutoFroze 创建的碰撞即停构造体句柄
|
|
39
|
+
* 返回值:
|
|
40
|
+
* Object 句柄,提供 Recycle() 函数用于停止碰撞检测,需要再componentWillUnmount进行调用(清理)
|
|
41
|
+
*/
|
|
42
|
+
function createImpactTracer(ele1, ele2, callback, auto_froze) {
|
|
43
|
+
return Forge.sImpactSensorManager.StartTrace(ele1.jsvGetProxyView(), ele2.jsvGetProxyView(), callback, auto_froze);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// 创建用于设置碰撞即停管理对象的参数
|
|
47
|
+
// 结果用于函数 createImpactAutoFroze 和 updateImpactAutoFroze
|
|
48
|
+
function _ConvertToViewsList(elements_array) {
|
|
49
|
+
const views_array = [];
|
|
50
|
+
if (elements_array) {
|
|
51
|
+
for (const ele of elements_array) {
|
|
52
|
+
views_array.push(ele.jsvGetProxyView());
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return views_array;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/*
|
|
59
|
+
* createImpactAutoFroze 参数说明:
|
|
60
|
+
* element_auto_froze_pre_impact (Array<Element>) 关联运动元素的列表,这些元素碰撞前一帧停止运动
|
|
61
|
+
* element_auto_froze_on_impact (Array<Element>) 关联运动元素的列表,这些元素碰撞当前帧停止运动
|
|
62
|
+
* 返回值:
|
|
63
|
+
* Object 句柄,用于传输给 createImpactTracer,也用于 updateImpactAutoFroze 调整关联元素
|
|
64
|
+
*
|
|
65
|
+
* 【注意点】
|
|
66
|
+
* 多个碰撞对可以共享同一个碰撞管理对象,并且建议共享同一个对象以提升效率
|
|
67
|
+
* 该管理对象中的view的列表可以通过 updateImpactAutoFrozeHandler进行更新,
|
|
68
|
+
* 更新后立刻在对所有的共享此管理对象的碰撞对中生效
|
|
69
|
+
*/
|
|
70
|
+
function createImpactAutoFroze(element_auto_froze_pre_impact, element_auto_froze_on_impact) {
|
|
71
|
+
if (!element_auto_froze_pre_impact && !element_auto_froze_on_impact) {
|
|
72
|
+
// Nothing to set
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const pre_impact_list = _ConvertToViewsList(element_auto_froze_pre_impact);
|
|
77
|
+
const on_impact_list = _ConvertToViewsList(element_auto_froze_on_impact);
|
|
78
|
+
|
|
79
|
+
return new Forge.sImpactSensorManager.AutoFroze(
|
|
80
|
+
(pre_impact_list.length > 0 ? pre_impact_list : null),
|
|
81
|
+
(on_impact_list.length > 0 ? on_impact_list : null));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/*
|
|
85
|
+
* updateImpactAutoFroze 参数说明:
|
|
86
|
+
* handler (Object) 由 createImpactAutoFroze 创建的句柄
|
|
87
|
+
* element_auto_froze_pre_impact (Array<Element>) 关联运动元素的列表,这些元素碰撞前一帧停止运动
|
|
88
|
+
* element_auto_froze_on_impact (Array<Element>) 关联运动元素的列表,这些元素碰撞当前帧停止运动
|
|
89
|
+
* 返回值:
|
|
90
|
+
* 无
|
|
91
|
+
*/
|
|
92
|
+
function updateImpactAutoFroze(handler, element_auto_froze_pre_impact, element_auto_froze_on_impact) {
|
|
93
|
+
if (handler instanceof Forge.sImpactSensorManager.AutoFroze) {
|
|
94
|
+
console.error("Error: handler type error");
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const pre_impact_list = _ConvertToViewsList(element_auto_froze_pre_impact);
|
|
99
|
+
const on_impact_list = _ConvertToViewsList(element_auto_froze_on_impact);
|
|
100
|
+
|
|
101
|
+
// 更新碰撞即停列表
|
|
102
|
+
handler.UpdatePreImpactList((pre_impact_list.length > 0 ? pre_impact_list : null));
|
|
103
|
+
|
|
104
|
+
// 更新接触接触即停列表
|
|
105
|
+
handler.UpdateOnImpactList((on_impact_list.length ? on_impact_list : null));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export {
|
|
109
|
+
createImpactCallback,
|
|
110
|
+
createImpactTracer,
|
|
111
|
+
createImpactAutoFroze,
|
|
112
|
+
updateImpactAutoFroze,
|
|
113
|
+
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: ChenChanghua
|
|
3
3
|
* @Date: 2022-07-05 14:09:55
|
|
4
4
|
* @LastEditors: ChenChanghua
|
|
5
|
-
* @LastEditTime: 2022-
|
|
5
|
+
* @LastEditTime: 2022-08-30 10:58:14
|
|
6
6
|
* @Description: file content
|
|
7
7
|
*/
|
|
8
8
|
|
|
@@ -16,4 +16,5 @@ export * from "./JsvRefTaker.js";
|
|
|
16
16
|
export * from "./JsvStyleClass.js";
|
|
17
17
|
export * from "./DebugContentShellJBridge.js";
|
|
18
18
|
export * from "./DebugTool.js";
|
|
19
|
+
export * from "./JsvImpactTracer.js";
|
|
19
20
|
export { default as DefaultKeyCodeMap } from "./DefaultKeyMap.js";
|
|
@@ -10,6 +10,8 @@ export default {
|
|
|
10
10
|
setup() {
|
|
11
11
|
return {
|
|
12
12
|
preloadResultMap: {},
|
|
13
|
+
downloadResultMap: {},
|
|
14
|
+
downloadUrlList: [],
|
|
13
15
|
unmountStatus: {unmount:false}
|
|
14
16
|
};
|
|
15
17
|
},
|
|
@@ -70,16 +72,19 @@ export default {
|
|
|
70
72
|
},
|
|
71
73
|
getDownloadList() {
|
|
72
74
|
this.downloadStateList = new Array(this.downloadList.length).fill(false);
|
|
75
|
+
this.downloadUrlList = new Array(this.downloadStateList.length);
|
|
73
76
|
let downloadListData = this.downloadList;
|
|
74
77
|
for (let i = 0; i < downloadListData.length; i++) {
|
|
75
78
|
if (!downloadListData[i].url) {
|
|
76
79
|
this.downloadStateList[i] = true;
|
|
80
|
+
this.downloadUrlList[i] = "invalid";
|
|
77
81
|
// downloadListData.splice(i, 1);
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
84
|
this._DownloadViewList = downloadListData.map((item, index) => {
|
|
81
85
|
if (!item.url) {
|
|
82
86
|
this.downloadStateList[index] = true;
|
|
87
|
+
this.downloadUrlList[index] = "invalid";
|
|
83
88
|
return null;
|
|
84
89
|
}
|
|
85
90
|
const image = new Image();
|
|
@@ -91,6 +96,11 @@ export default {
|
|
|
91
96
|
}
|
|
92
97
|
|
|
93
98
|
this.downloadStateList[index] = true;
|
|
99
|
+
this.downloadUrlList[index] = item.url;
|
|
100
|
+
this.downloadResultMap[item.url] = {
|
|
101
|
+
width: image.width,
|
|
102
|
+
height: image.height
|
|
103
|
+
}
|
|
94
104
|
console.log(`pre download succeed ${item.url}`);
|
|
95
105
|
if (this.onDownloadDone) {
|
|
96
106
|
let downloadNum = 0;
|
|
@@ -98,7 +108,7 @@ export default {
|
|
|
98
108
|
downloadNum += item ? 1 : 0;
|
|
99
109
|
});
|
|
100
110
|
if (downloadNum == this.downloadStateList.length) {
|
|
101
|
-
this.onDownloadDone?.();
|
|
111
|
+
this.onDownloadDone?.(this.downloadUrlList, this.downloadResultMap);
|
|
102
112
|
}
|
|
103
113
|
}
|
|
104
114
|
};
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
* @Author: ChenChanghua
|
|
3
3
|
* @Date: 2022-02-08 09:29:17
|
|
4
4
|
* @LastEditors: ChenChanghua
|
|
5
|
-
* @LastEditTime: 2022-
|
|
5
|
+
* @LastEditTime: 2022-11-24 10:15:37
|
|
6
6
|
* @Description: file content
|
|
7
7
|
-->
|
|
8
8
|
<script>
|
|
9
|
-
import {
|
|
10
|
-
import { getKeyFramesGroup } from "jsview/utils/JsViewVueTools/JsvDynamicKeyFrames";
|
|
9
|
+
import { getKeyFramesGroup } from "../../JsViewVueTools/JsvDynamicKeyFrames";
|
|
11
10
|
|
|
12
11
|
const DECORATE_BORDER_RADIUS = "BroderRaidus";
|
|
13
12
|
const DECORATE_NINEPATCH_ALPHA_MIX = "NinePatchAlphaMix";
|
|
@@ -102,7 +101,7 @@ export default {
|
|
|
102
101
|
type: Object,
|
|
103
102
|
},
|
|
104
103
|
},
|
|
105
|
-
setup(
|
|
104
|
+
setup() {
|
|
106
105
|
let styleShell = getKeyFramesGroup();
|
|
107
106
|
return {
|
|
108
107
|
styleShell,
|
|
@@ -205,15 +204,14 @@ export default {
|
|
|
205
204
|
overflow: 'hidden',
|
|
206
205
|
};
|
|
207
206
|
}
|
|
208
|
-
}
|
|
209
|
-
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
210
209
|
left: this.left + "px",
|
|
211
210
|
top: this.top + "px",
|
|
212
211
|
width: this.width + "px",
|
|
213
212
|
height: this.height + "px",
|
|
214
213
|
overflow: 'hidden',
|
|
215
214
|
};
|
|
216
|
-
}
|
|
217
215
|
},
|
|
218
216
|
},
|
|
219
217
|
methods: {
|
|
@@ -250,7 +248,7 @@ export default {
|
|
|
250
248
|
|
|
251
249
|
this.animDiv.appendChild(imgDiv);
|
|
252
250
|
clipDiv.appendChild(this.animDiv);
|
|
253
|
-
this.$refs.root.
|
|
251
|
+
this.$refs.root.jsvGetProxyView(true).Element.appendChild(clipDiv);
|
|
254
252
|
|
|
255
253
|
this.watcherHandlerList.push(
|
|
256
254
|
this.$watch("left", (newValue) => {
|
|
@@ -297,4 +295,4 @@ export default {
|
|
|
297
295
|
|
|
298
296
|
<template>
|
|
299
297
|
<div ref="root"></div>
|
|
300
|
-
</template>
|
|
298
|
+
</template>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @Author: ChenChanghua
|
|
3
3
|
* @Date: 2021-10-20 17:21:21
|
|
4
4
|
* @LastEditors: ChenChanghua
|
|
5
|
-
* @LastEditTime:
|
|
5
|
+
* @LastEditTime: 2022-08-31 11:14:13
|
|
6
6
|
* @Description: file content
|
|
7
7
|
-->
|
|
8
8
|
|
|
@@ -44,11 +44,11 @@ export default {
|
|
|
44
44
|
refDefine: Object,
|
|
45
45
|
},
|
|
46
46
|
mounted() {
|
|
47
|
-
this.control._SetView(this.$refs.element.
|
|
47
|
+
this.control._SetView(this.$refs.element.jsvGetProxyView());
|
|
48
48
|
if (this.refDefine) {
|
|
49
49
|
const type = typeof this.refDefine;
|
|
50
50
|
if (type === "object") {
|
|
51
|
-
|
|
51
|
+
this.refDefine.current = this.$refs.element;
|
|
52
52
|
} else if (type === "function") {
|
|
53
53
|
this.refDefine(this.$refs.element);
|
|
54
54
|
}
|