Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
李勇
/
McuClient
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
李勇
2017-04-06 15:27:33 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
feef78bacfd030728f37ad5dd2e722307cc16d01
feef78ba
1 parent
5e8f9db7
1.文档模块新增默认显示的文档选择功能,不需要客户端自己选择,解决客户端自己选择导致不同步的问题
隐藏空白字符变更
内嵌
并排对比
正在显示
4 个修改的文件
包含
514 行增加
和
467 行删除
dist/McuClient.js
src/EngineEntrance.js
src/apes/Ape.js
src/apes/DocApe.js
dist/McuClient.js
已删除
100644 → 0
查看文件 @
5e8f9db
此 diff 太大无法显示。
src/EngineEntrance.js
查看文件 @
feef78b
...
...
@@ -26,7 +26,7 @@ import ArrayBufferUtil from 'libs/ArrayBufferUtil';
import
UTF8
from
'utf-8'
;
let
loger
=
Loger
.
getLoger
(
'MessageEntrance'
);
let
_sdkInfo
=
{
"version"
:
"v.1.8.
7.20170405-1
"
,
"author"
:
"www.3mang.com"
};
let
_sdkInfo
=
{
"version"
:
"v.1.8.
8.20170406-4
"
,
"author"
:
"www.3mang.com"
};
//APE
let
_sass
;
...
...
src/apes/Ape.js
查看文件 @
feef78b
...
...
@@ -177,7 +177,7 @@ export default class Ape extends Emiter {
this
.
tableUpdateHandler
(
tableItem
.
owner
,
tableItem
.
itemIdx
,
tableItem
.
itemData
,
seekTime
);
}
//白板
数据
内部自己处理数组
//白板
,文档数据数组
内部自己处理数组
this
.
tableUpdateApeHandler
(
tableUpdateItems
);
break
;
case
pdu
.
RCPDU_REG_QUEUE_UPDATE_PDU
:
...
...
src/apes/DocApe.js
查看文件 @
feef78b
...
...
@@ -22,512 +22,559 @@ import GlobalConfig from 'GlobalConfig';
import
EngineUtils
from
'EngineUtils'
;
let
loger
=
Loger
.
getLoger
(
'DocApe'
);
let
itemIdx
=
0
;
//table插入新数据的计数id,目前用时间戳
let
itemIdx
=
0
;
//table插入新数据的计数id,目前用时间戳
class
DocApe
extends
Ape
{
constructor
()
{
super
(
ApeConsts
.
DOCSHARING_SESSION_ID
,
ApeConsts
.
DOCSHARING_SESSION_NAME
,
ApeConsts
.
DOCSHARING_SESSION_TAG
);
this
.
docList
=
{};
//记录文档的数组this.docList[itemIdx]=itemIdx的数据
//this.activeDocItemIdx =0;//当前激活的文档itemIdx
//this.activeDocCurPage=1;//当前激活的文档的当前页
// Ape Models
this
.
registerKey
(
this
.
_session_id
,
this
.
_session_name
,
this
.
_session_tag
,
new
ArrayBuffer
);
this
.
registerObj
(
pdu
.
RCPDU_REG_REGISTER_TABLE
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_NAME
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_TAG
,
0
,
new
ArrayBuffer
);
//this.registerObj(pdu.RCPDU_REG_REGISTER_TABLE, ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5, ApeConsts.DOCSHARING_OBJ_TABLE_NAME_H5, ApeConsts.DOCSHARING_OBJ_TABLE_TAG_H5, 0, new ArrayBuffer);
}
/////////////发送数据操作//////////////////////////////////////////////////////
//上传文档
documentUpload
(
paramInfo
){
if
(
paramInfo
==
null
||
EngineUtils
.
isEmptyObject
(
paramInfo
)){
loger
.
log
(
'documentUpload失败,参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//判断文档是否已经存在,每个文档都有唯一的docId,如果已经同步的文档中存在相同的docId就不需要再同步
if
(
this
.
checkDocId
(
paramInfo
.
docId
)){
//文档已经存在相同的docId,不需要同步上传
loger
.
warn
(
'documentUpload 文档的docId不无效或已经存在相同的docId,不需要上传'
);
return
;
constructor
()
{
super
(
ApeConsts
.
DOCSHARING_SESSION_ID
,
ApeConsts
.
DOCSHARING_SESSION_NAME
,
ApeConsts
.
DOCSHARING_SESSION_TAG
);
this
.
docList
=
{};
//记录文档的数组this.docList[itemIdx]=itemIdx的数据
//this.activeDocItemIdx =0;//当前激活的文档itemIdx
//this.activeDocCurPage=1;//当前激活的文档的当前页
// Ape Models
this
.
registerKey
(
this
.
_session_id
,
this
.
_session_name
,
this
.
_session_tag
,
new
ArrayBuffer
);
this
.
registerObj
(
pdu
.
RCPDU_REG_REGISTER_TABLE
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_NAME
,
ApeConsts
.
DOCSHARING_OBJ_TABLE_TAG
,
0
,
new
ArrayBuffer
);
//this.registerObj(pdu.RCPDU_REG_REGISTER_TABLE, ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5, ApeConsts.DOCSHARING_OBJ_TABLE_NAME_H5, ApeConsts.DOCSHARING_OBJ_TABLE_TAG_H5, 0, new ArrayBuffer);
}
itemIdx
=
EngineUtils
.
creatSoleNumberFromTimestamp
();
let
docDataModelPdu
=
this
.
packPdu
(
paramInfo
,
itemIdx
);
if
(
docDataModelPdu
==
null
){
loger
.
log
(
'documentUpload失败,参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//console.log(docDataModelPdu);
let
tableItemPdu
=
new
pdu
[
'RCRegistryTableItemPdu'
];
tableItemPdu
.
itemIdx
=
itemIdx
;
//直接用时间戳作为id
tableItemPdu
.
registerObjId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// tableItemPdu.registerObjId=ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
tableItemPdu
.
owner
=
0
;
//收到flash的是这个值,不清楚先写固定
tableItemPdu
.
itemData
=
docDataModelPdu
.
toArrayBuffer
();
//insert
let
tableInsertItemPdu
=
new
pdu
[
'RCRegistryTableInsertItemPdu'
];
//optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];
//repeated RCRegistryTableItemPdu items = 2;
tableInsertItemPdu
.
type
=
pdu
.
RCPDU_REG_TABLE_INSERT_PDU
;
//
tableInsertItemPdu
.
items
.
push
(
tableItemPdu
);
let
updateObjPdu
=
new
pdu
[
'RCRegistryUpdateObjPdu'
];
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
updateObjPdu
.
subType
=
tableInsertItemPdu
.
type
;
updateObjPdu
.
userData
=
tableInsertItemPdu
.
toArrayBuffer
();
//同步
let
adapterItemPdu
=
new
pdu
[
'RCAdapterItemPdu'
];
adapterItemPdu
.
type
=
pdu
.
RCPDU_REG_UPDATE_OBJ
;
adapterItemPdu
.
itemData
=
updateObjPdu
.
toArrayBuffer
();
let
adapterPdu
=
new
pdu
[
'RCAdapterPdu'
];
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
loger
.
log
(
"文档upload tableItemPdu.itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
updaterDoc
(
_docDataModel
,
_itemIdx
){
//loger.log("文档===updaterDoc ",_itemIdx);
//验证坐标点集合数组是否合法
if
(
_docDataModel
==
null
||
_itemIdx
==
null
){
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
}
loger
.
log
(
"文档===updaterDoc "
,
_docDataModel
);
let
docDataModelPdu
=
this
.
packPdu
(
_docDataModel
,
_itemIdx
);
let
tableItemPdu
=
new
pdu
[
'RCRegistryTableItemPdu'
];
tableItemPdu
.
itemIdx
=
_itemIdx
;
//直接用时间戳作为id
//tableItemPdu.registerObjId=ApeConsts.DOCSHARING_OBJ_TABLE_ID;// tableItemPdu.registerObjId=ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
tableItemPdu
.
owner
=
0
;
//收到flash的是这个值,不清楚先写固定
tableItemPdu
.
itemData
=
docDataModelPdu
.
toArrayBuffer
();
//insert
let
tableInsertItemPdu
=
new
pdu
[
'RCRegistryTableUpdateItemPdu'
];
//optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];
//repeated RCRegistryTableItemPdu items = 2;
tableInsertItemPdu
.
type
=
pdu
.
RCPDU_REG_TABLE_UPDATE_PDU
;
//
tableInsertItemPdu
.
items
.
push
(
tableItemPdu
);
let
updateObjPdu
=
new
pdu
[
'RCRegistryUpdateObjPdu'
];
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
updateObjPdu
.
subType
=
tableInsertItemPdu
.
type
;
updateObjPdu
.
userData
=
tableInsertItemPdu
.
toArrayBuffer
();
//同步
let
adapterItemPdu
=
new
pdu
[
'RCAdapterItemPdu'
];
adapterItemPdu
.
type
=
pdu
.
RCPDU_REG_UPDATE_OBJ
;
adapterItemPdu
.
itemData
=
updateObjPdu
.
toArrayBuffer
();
let
adapterPdu
=
new
pdu
[
'RCAdapterPdu'
];
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
loger
.
log
(
"发送更新文档.itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
//获取文档的图片完整地址
getDocImageFullPath
(
_param
){
if
(
_param
==
null
||
_param
.
relativeUrl
==
null
||
_param
.
relativeUrl
==
""
){
loger
.
warn
(
'获取文档完整地址,传递的参数不对.'
,
_param
);
return
[];
/////////////发送数据操作//////////////////////////////////////////////////////
//上传文档
documentUpload
(
paramInfo
)
{
if
(
paramInfo
==
null
||
EngineUtils
.
isEmptyObject
(
paramInfo
))
{
loger
.
log
(
'documentUpload失败,参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//判断文档是否已经存在,每个文档都有唯一的docId,如果已经同步的文档中存在相同的docId就不需要再同步
if
(
this
.
checkDocId
(
paramInfo
.
docId
))
{
//文档已经存在相同的docId,不需要同步上传
loger
.
warn
(
'documentUpload 文档的docId不无效或已经存在相同的docId,不需要上传'
);
return
;
}
itemIdx
=
EngineUtils
.
creatSoleNumberFromTimestamp
();
let
docDataModelPdu
=
this
.
packPdu
(
paramInfo
,
itemIdx
);
if
(
docDataModelPdu
==
null
)
{
loger
.
log
(
'documentUpload失败,参数错误'
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//console.log(docDataModelPdu);
let
tableItemPdu
=
new
pdu
[
'RCRegistryTableItemPdu'
];
tableItemPdu
.
itemIdx
=
itemIdx
;
//直接用时间戳作为id
tableItemPdu
.
registerObjId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// tableItemPdu.registerObjId=ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
tableItemPdu
.
owner
=
0
;
//收到flash的是这个值,不清楚先写固定
tableItemPdu
.
itemData
=
docDataModelPdu
.
toArrayBuffer
();
//insert
let
tableInsertItemPdu
=
new
pdu
[
'RCRegistryTableInsertItemPdu'
];
//optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];
//repeated RCRegistryTableItemPdu items = 2;
tableInsertItemPdu
.
type
=
pdu
.
RCPDU_REG_TABLE_INSERT_PDU
;
//
tableInsertItemPdu
.
items
.
push
(
tableItemPdu
);
let
updateObjPdu
=
new
pdu
[
'RCRegistryUpdateObjPdu'
];
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
updateObjPdu
.
subType
=
tableInsertItemPdu
.
type
;
updateObjPdu
.
userData
=
tableInsertItemPdu
.
toArrayBuffer
();
//同步
let
adapterItemPdu
=
new
pdu
[
'RCAdapterItemPdu'
];
adapterItemPdu
.
type
=
pdu
.
RCPDU_REG_UPDATE_OBJ
;
adapterItemPdu
.
itemData
=
updateObjPdu
.
toArrayBuffer
();
let
adapterPdu
=
new
pdu
[
'RCAdapterPdu'
];
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
loger
.
log
(
"文档upload tableItemPdu.itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
let
port
=
(
GlobalConfig
.
DOCServerPort
==
""
||
GlobalConfig
.
DOCServerPort
==
null
)
?
""
:
":"
+
GlobalConfig
.
DOCServerPort
;
let
fullPath
=
GlobalConfig
.
DOCServerIP
+
port
+
_param
.
relativeUrl
;
if
(
fullPath
&&
fullPath
.
indexOf
(
"http://"
)
<
0
){
fullPath
=
"http://"
+
fullPath
;
updaterDoc
(
_docDataModel
,
_itemIdx
)
{
//loger.log("文档===updaterDoc ",_itemIdx);
//验证坐标点集合数组是否合法
if
(
_docDataModel
==
null
||
_itemIdx
==
null
)
{
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
}
loger
.
log
(
"文档===updaterDoc "
,
_docDataModel
);
let
docDataModelPdu
=
this
.
packPdu
(
_docDataModel
,
_itemIdx
);
let
tableItemPdu
=
new
pdu
[
'RCRegistryTableItemPdu'
];
tableItemPdu
.
itemIdx
=
_itemIdx
;
//直接用时间戳作为id
//tableItemPdu.registerObjId=ApeConsts.DOCSHARING_OBJ_TABLE_ID;// tableItemPdu.registerObjId=ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
tableItemPdu
.
owner
=
0
;
//收到flash的是这个值,不清楚先写固定
tableItemPdu
.
itemData
=
docDataModelPdu
.
toArrayBuffer
();
//insert
let
tableInsertItemPdu
=
new
pdu
[
'RCRegistryTableUpdateItemPdu'
];
//optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_UPDATE_PDU];
//repeated RCRegistryTableItemPdu items = 2;
tableInsertItemPdu
.
type
=
pdu
.
RCPDU_REG_TABLE_UPDATE_PDU
;
//
tableInsertItemPdu
.
items
.
push
(
tableItemPdu
);
let
updateObjPdu
=
new
pdu
[
'RCRegistryUpdateObjPdu'
];
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
updateObjPdu
.
subType
=
tableInsertItemPdu
.
type
;
updateObjPdu
.
userData
=
tableInsertItemPdu
.
toArrayBuffer
();
//同步
let
adapterItemPdu
=
new
pdu
[
'RCAdapterItemPdu'
];
adapterItemPdu
.
type
=
pdu
.
RCPDU_REG_UPDATE_OBJ
;
adapterItemPdu
.
itemData
=
updateObjPdu
.
toArrayBuffer
();
let
adapterPdu
=
new
pdu
[
'RCAdapterPdu'
];
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
loger
.
log
(
"发送更新文档.itemIdx="
+
tableItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
var
fileType
=
"jpg"
;
switch
(
_param
.
type
){
case
"jpg"
:
fileType
=
"jpg"
;
fullPath
=
this
.
replacePathType
(
fullPath
)
+
".jpg"
;
break
;
case
"png"
:
fileType
=
"png"
;
fullPath
=
this
.
replacePathType
(
fullPath
)
+
".png"
;
break
;
default
:
//不做处理,直接返回拼接的地址
break
;
//获取文档的图片完整地址
getDocImageFullPath
(
_param
)
{
if
(
_param
==
null
||
_param
.
relativeUrl
==
null
||
_param
.
relativeUrl
==
""
)
{
loger
.
warn
(
'获取文档完整地址,传递的参数不对.'
,
_param
);
return
[];
}
let
port
=
(
GlobalConfig
.
DOCServerPort
==
""
||
GlobalConfig
.
DOCServerPort
==
null
)
?
""
:
":"
+
GlobalConfig
.
DOCServerPort
;
let
fullPath
=
GlobalConfig
.
DOCServerIP
+
port
+
_param
.
relativeUrl
;
if
(
fullPath
&&
fullPath
.
indexOf
(
"http://"
)
<
0
)
{
fullPath
=
"http://"
+
fullPath
;
}
var
fileType
=
"jpg"
;
switch
(
_param
.
type
)
{
case
"jpg"
:
fileType
=
"jpg"
;
fullPath
=
this
.
replacePathType
(
fullPath
)
+
".jpg"
;
break
;
case
"png"
:
fileType
=
"png"
;
fullPath
=
this
.
replacePathType
(
fullPath
)
+
".png"
;
break
;
default
:
//不做处理,直接返回拼接的地址
break
;
}
if
(
_param
.
pageNum
&&
parseInt
(
_param
.
pageNum
)
>
1
)
{
//如果是多页的,需要返回序列
var
lastIndex
=
fullPath
.
lastIndexOf
(
"/"
);
if
(
lastIndex
>
0
)
{
let
newPath
=
fullPath
.
substr
(
0
,
lastIndex
);
let
pathArr
=
[];
//页数从1开始
for
(
let
i
=
1
;
i
<=
_param
.
pageNum
;
i
++
)
{
pathArr
.
push
(
newPath
+
"/"
+
i
+
"."
+
fileType
);
}
return
pathArr
;
}
else
{
return
[
fullPath
];
}
}
else
{
return
[
fullPath
];
}
}
if
(
_param
.
pageNum
&&
parseInt
(
_param
.
pageNum
)
>
1
){
//如果是多页的,需要返回序列
var
lastIndex
=
fullPath
.
lastIndexOf
(
"/"
);
if
(
lastIndex
>
0
){
let
newPath
=
fullPath
.
substr
(
0
,
lastIndex
);
let
pathArr
=
[];
//页数从1开始
for
(
let
i
=
1
;
i
<=
_param
.
pageNum
;
i
++
){
pathArr
.
push
(
newPath
+
"/"
+
i
+
"."
+
fileType
);
}
return
pathArr
;
}
else
{
//获取文档的pdf完整地址
getDocPDFFullPath
(
_param
)
{
if
(
_param
==
null
||
_param
.
relativeUrl
==
null
||
_param
.
relativeUrl
==
""
)
{
loger
.
warn
(
'获取文档完整地址,传递的参数不对.'
,
_param
);
return
[];
}
let
port
=
(
GlobalConfig
.
DOCServerPort
==
""
||
GlobalConfig
.
DOCServerPort
==
null
)
?
""
:
":"
+
GlobalConfig
.
DOCServerPort
;
let
fullPath
=
GlobalConfig
.
DOCServerIP
+
port
+
_param
.
relativeUrl
;
if
(
fullPath
&&
fullPath
.
indexOf
(
"http://"
)
<
0
)
{
fullPath
=
"http://"
+
fullPath
;
}
fullPath
=
this
.
replacePathType
(
fullPath
)
+
".pdf"
;
return
[
fullPath
];
}
}
else
{
return
[
fullPath
];
}
}
//获取文档的pdf完整地址
getDocPDFFullPath
(
_param
){
if
(
_param
==
null
||
_param
.
relativeUrl
==
null
||
_param
.
relativeUrl
==
""
){
loger
.
warn
(
'获取文档完整地址,传递的参数不对.'
,
_param
);
return
[];
}
let
port
=
(
GlobalConfig
.
DOCServerPort
==
""
||
GlobalConfig
.
DOCServerPort
==
null
)
?
""
:
":"
+
GlobalConfig
.
DOCServerPort
;
let
fullPath
=
GlobalConfig
.
DOCServerIP
+
port
+
_param
.
relativeUrl
;
if
(
fullPath
&&
fullPath
.
indexOf
(
"http://"
)
<
0
){
fullPath
=
"http://"
+
fullPath
;
}
fullPath
=
this
.
replacePathType
(
fullPath
)
+
".pdf"
;
return
[
fullPath
];
}
// 去除文件的后缀格式名称
replacePathType
(
_path
){
let
path
=
_path
;
path
=
path
.
replace
(
/.jpg/g
,
""
);
path
=
path
.
replace
(
/.png/g
,
""
);
path
=
path
.
replace
(
/.swf/g
,
""
);
path
=
path
.
replace
(
/.pdf/g
,
""
);
return
path
;
}
//切换文档
documentSwitchDoc
(
paramInfo
){
loger
.
log
(
'切换文档,documentSwitchDoc'
);
loger
.
log
(
paramInfo
);
if
(
paramInfo
==
null
||
paramInfo
.
itemIdx
==
null
){
loger
.
warn
(
'documentSwitch失败,参数错误'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
// 去除文件的后缀格式名称
replacePathType
(
_path
)
{
let
path
=
_path
;
path
=
path
.
replace
(
/.jpg/g
,
""
);
path
=
path
.
replace
(
/.png/g
,
""
);
path
=
path
.
replace
(
/.swf/g
,
""
);
path
=
path
.
replace
(
/.pdf/g
,
""
);
return
path
;
}
if
(
paramInfo
.
itemIdx
==
GlobalConfig
.
activeDocId
&&
GlobalConfig
.
activeDocId
!=
0
){
loger
.
warn
(
'文档已经显示'
,
paramInfo
.
itemIdx
,
GlobalConfig
.
activeDocId
);
return
;
}
//切换文档
documentSwitchDoc
(
paramInfo
)
{
loger
.
log
(
'切换文档,documentSwitchDoc->'
,
paramInfo
);
//更新切换之前的文档的数据,要显示当前切换的文档,上一个文档需要隐藏
let
oldDocModel
;
if
(
GlobalConfig
.
activeDocId
!=
0
){
oldDocModel
=
this
.
docList
[
GlobalConfig
.
activeDocId
];
if
(
oldDocModel
){
oldDocModel
.
action
=
ApeConsts
.
DOC_ACTION_NORMAL
;
oldDocModel
.
visible
=
false
;
//设置为不可见
}
}
if
(
GlobalConfig
.
isRecordPlayBack
)
{
loger
.
warn
(
'录制回放状态不允许切换文档'
);
return
;
}
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
if
(
docDataModel
==
null
){
loger
.
warn
(
'documentSwitch失败,文档不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
if
(
paramInfo
==
null
||
paramInfo
.
itemIdx
==
null
)
{
loger
.
warn
(
'documentSwitch失败,参数错误'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新当前选择的文档数据的字段
docDataModel
.
action
=
ApeConsts
.
DOC_ACTION_SWITCH_DOC
;
docDataModel
.
visible
=
paramInfo
.
visible
||
false
;
//默认是false
if
(
paramInfo
.
itemIdx
==
GlobalConfig
.
activeDocId
&&
GlobalConfig
.
activeDocId
!=
0
)
{
loger
.
warn
(
'文档已经显示'
,
paramInfo
.
itemIdx
,
GlobalConfig
.
activeDocId
);
return
;
}
//loger.log('切换文档,当前文档和上一个显示的文档都需要更新状态');
loger
.
log
({
"oldDoc"
:
oldDocModel
,
"nowDoc"
:
docDataModel
});
//更新当前选择的文档
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
//更新切换之前的文档的数据,要显示当前切换的文档,上一个文档需要隐藏
let
oldDocModel
;
if
(
GlobalConfig
.
activeDocId
!=
0
)
{
oldDocModel
=
this
.
docList
[
GlobalConfig
.
activeDocId
];
if
(
oldDocModel
)
{
oldDocModel
.
action
=
ApeConsts
.
DOC_ACTION_NORMAL
;
oldDocModel
.
visible
=
false
;
//设置为不可见
}
}
//更新上一个文档 隐藏
if
(
oldDocModel
){
this
.
updaterDoc
(
oldDocModel
,
oldDocModel
.
itemIdx
);
}
}
//文档翻页
documentSwitchPage
(
paramInfo
){
loger
.
log
(
'文档翻页,documentSwitchPage'
);
loger
.
log
(
paramInfo
);
//console.log(this.docList);
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
//console.log(docDataModelPdu);
//console.log(docDataModel);
if
(
docDataModel
==
null
){
loger
.
log
(
'documentSwitchPage->,文档不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
if
(
docDataModel
==
null
)
{
loger
.
warn
(
'documentSwitch失败,文档不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新当前选择的文档数据的字段
docDataModel
.
action
=
ApeConsts
.
DOC_ACTION_SWITCH_DOC
;
docDataModel
.
visible
=
paramInfo
.
visible
||
false
;
//默认是false
//loger.log('切换文档,当前文档和上一个显示的文档都需要更新状态');
loger
.
log
({
"oldDoc"
:
oldDocModel
,
"nowDoc"
:
docDataModel
});
//更新当前选择的文档
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
//更新上一个文档 隐藏
if
(
oldDocModel
)
{
this
.
updaterDoc
(
oldDocModel
,
oldDocModel
.
itemIdx
);
}
}
//更新数据的字段
docDataModel
.
action
=
ApeConsts
.
DOC_ACTION_SWITCH_PAGE
;
docDataModel
.
curPageNo
=
parseInt
(
paramInfo
.
curPageNo
)
||
1
;
if
(
docDataModel
.
curPageNo
<
1
){
docDataModel
.
curPageNo
=
1
;
//默认值最小是1
//文档翻页
documentSwitchPage
(
paramInfo
)
{
loger
.
log
(
'文档翻页,documentSwitchPage'
);
loger
.
log
(
paramInfo
);
//console.log(this.docList);
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
//console.log(docDataModelPdu);
//console.log(docDataModel);
if
(
docDataModel
==
null
)
{
loger
.
log
(
'documentSwitchPage->,文档不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新数据的字段
docDataModel
.
action
=
ApeConsts
.
DOC_ACTION_SWITCH_PAGE
;
docDataModel
.
curPageNo
=
parseInt
(
paramInfo
.
curPageNo
)
||
1
;
if
(
docDataModel
.
curPageNo
<
1
)
{
docDataModel
.
curPageNo
=
1
;
//默认值最小是1
}
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
//文档切换显示模式
documentSwitchShowModel
(
paramInfo
){
loger
.
log
(
'documentSwitchShowModel'
,
paramInfo
);
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
if
(
docDataModel
==
null
){
loger
.
log
(
'documentSwitchShowModel->文档不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
//文档切换显示模式
documentSwitchShowModel
(
paramInfo
)
{
loger
.
log
(
'documentSwitchShowModel'
,
paramInfo
);
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
if
(
docDataModel
==
null
)
{
loger
.
log
(
'documentSwitchShowModel->文档不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新数据的字段
docDataModel
.
action
=
ApeConsts
.
DOC_ACTION_SWITCH_PAGE
;
docDataModel
.
curPageNo
=
parseInt
(
paramInfo
.
curPageNo
)
||
1
;
if
(
docDataModel
.
curPageNo
<
1
)
{
docDataModel
.
curPageNo
=
1
;
//默认值最小是1
}
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
//更新数据的字段
docDataModel
.
action
=
ApeConsts
.
DOC_ACTION_SWITCH_PAGE
;
docDataModel
.
curPageNo
=
parseInt
(
paramInfo
.
curPageNo
)
||
1
;
if
(
docDataModel
.
curPageNo
<
1
){
docDataModel
.
curPageNo
=
1
;
//默认值最小是1
//缩放/滚动/显示模式
documentCommand
(
paramInfo
)
{
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
if
(
docDataModel
==
null
)
{
loger
.
log
(
'documentCommand失败,文档不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
}
//更新数据的字段
docDataModel
.
action
=
ApeConsts
.
DOC_ACTION_COMMAND
;
docDataModel
.
showType
=
parseInt
(
paramInfo
.
showType
)
||
0
;
//0;//完整显示;1;//按宽度显示;2;//按高度显示
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
//缩放/滚动/显示模式
documentCommand
(
paramInfo
){
//获取已经存在的数据
let
docDataModel
=
this
.
docList
[
paramInfo
.
itemIdx
];
if
(
docDataModel
==
null
){
loger
.
log
(
'documentCommand失败,文档不存在'
,
paramInfo
);
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
;
//删除所有文档
documentDeleteAll
(
_param
)
{
for
(
let
key
in
this
.
docList
)
{
//console.log("key:"+key);
loger
.
log
(
"删除文档数据,itemIdx:"
+
key
);
this
.
documentDelete
({
"itemIdx"
:
key
});
}
}
//更新数据的字段
docDataModel
.
action
=
ApeConsts
.
DOC_ACTION_COMMAND
;
docDataModel
.
showType
=
parseInt
(
paramInfo
.
showType
)
||
0
;
//0;//完整显示;1;//按宽度显示;2;//按高度显示
this
.
updaterDoc
(
docDataModel
,
docDataModel
.
itemIdx
);
}
//删除所有文档
documentDeleteAll
(
_param
){
for
(
let
key
in
this
.
docList
){
//console.log("key:"+key);
loger
.
log
(
"删除文档数据,itemIdx:"
+
key
);
this
.
documentDelete
({
"itemIdx"
:
key
});
//删除文档
documentDelete
(
paramInfo
)
{
//{"itemIdx":itemIdx}
let
tableDeleteItemPdu
=
new
pdu
[
'RCRegistryTableDeleteItemPdu'
];
//optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_DELETE_PDU];
// repeated uint32 item_idx = 2;
tableDeleteItemPdu
.
type
=
pdu
.
RCPDU_REG_TABLE_DELETE_PDU
;
//
tableDeleteItemPdu
.
itemIdx
=
parseInt
(
paramInfo
.
itemIdx
);
//这里需要设置要删除的数据的itemIdx,每条数据的这个id都不一样
let
updateObjPdu
=
new
pdu
[
'RCRegistryUpdateObjPdu'
];
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
updateObjPdu
.
subType
=
tableDeleteItemPdu
.
type
;
updateObjPdu
.
userData
=
tableDeleteItemPdu
.
toArrayBuffer
();
//同步
let
adapterItemPdu
=
new
pdu
[
'RCAdapterItemPdu'
];
adapterItemPdu
.
type
=
pdu
.
RCPDU_REG_UPDATE_OBJ
;
adapterItemPdu
.
itemData
=
updateObjPdu
.
toArrayBuffer
();
let
adapterPdu
=
new
pdu
[
'RCAdapterPdu'
];
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
loger
.
log
(
"文档发送删除数据============="
+
tableDeleteItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
}
//删除文档
documentDelete
(
paramInfo
){
//{"itemIdx":itemIdx}
let
tableDeleteItemPdu
=
new
pdu
[
'RCRegistryTableDeleteItemPdu'
];
//optional RCPduType_E type = 1 [default = RCPDU_REG_TABLE_DELETE_PDU];
// repeated uint32 item_idx = 2;
tableDeleteItemPdu
.
type
=
pdu
.
RCPDU_REG_TABLE_DELETE_PDU
;
//
tableDeleteItemPdu
.
itemIdx
=
parseInt
(
paramInfo
.
itemIdx
);
//这里需要设置要删除的数据的itemIdx,每条数据的这个id都不一样
let
updateObjPdu
=
new
pdu
[
'RCRegistryUpdateObjPdu'
];
updateObjPdu
.
objId
=
ApeConsts
.
DOCSHARING_OBJ_TABLE_ID
;
// updateObjPdu.objId = ApeConsts.DOCSHARING_OBJ_TABLE_ID_H5;
updateObjPdu
.
subType
=
tableDeleteItemPdu
.
type
;
updateObjPdu
.
userData
=
tableDeleteItemPdu
.
toArrayBuffer
();
//同步
let
adapterItemPdu
=
new
pdu
[
'RCAdapterItemPdu'
];
adapterItemPdu
.
type
=
pdu
.
RCPDU_REG_UPDATE_OBJ
;
adapterItemPdu
.
itemData
=
updateObjPdu
.
toArrayBuffer
();
let
adapterPdu
=
new
pdu
[
'RCAdapterPdu'
];
adapterPdu
.
type
=
pdu
.
RCPDU_REG_ADAPTER
;
adapterPdu
.
item
.
push
(
adapterItemPdu
);
loger
.
log
(
"文档发送删除数据============="
+
tableDeleteItemPdu
.
itemIdx
);
this
.
sendUniform
(
adapterPdu
,
true
);
}
/////收到消息处理/////////////////////////////////////////////////////////////////////////////////
tableInsertHandler
(
owner
,
itemIdx
,
itemData
)
{
//this.tableUpdateHandler(owner, tableId, itemData);
//loger.log('tableInsertHandler---',itemData);
let
itemDataInfo
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
this
.
docList
[
itemIdx
]
=
itemDataInfo
;
if
(
itemDataInfo
.
visible
==
"true"
||
itemDataInfo
.
visible
==
true
){
GlobalConfig
.
activeDocId
=
itemDataInfo
.
itemIdx
;
//当前激活的文档ID
GlobalConfig
.
activeDocCurPage
=
itemDataInfo
.
curPageNo
;
//当前激活的文档的当前页
loger
.
log
(
'tableInsertHandler 设置当前激活的文档id'
);
/////收到消息处理/////////////////////////////////////////////////////////////////////////////////
tableInsertHandler
(
owner
,
itemIdx
,
itemData
)
{
//this.tableUpdateHandler(owner, tableId, itemData);
//loger.log('tableInsertHandler---',itemData);
let
itemDataInfo
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
this
.
docList
[
itemIdx
]
=
itemDataInfo
;
if
(
itemDataInfo
.
visible
==
"true"
||
itemDataInfo
.
visible
==
true
)
{
GlobalConfig
.
activeDocId
=
itemDataInfo
.
itemIdx
;
//当前激活的文档ID
GlobalConfig
.
activeDocCurPage
=
itemDataInfo
.
curPageNo
;
//当前激活的文档的当前页
loger
.
log
(
'tableInsertHandler 设置当前激活的文档id'
);
}
loger
.
log
(
'tableInsertHandler->'
,
itemDataInfo
);
this
.
_emit
(
MessageTypes
.
DOC_UPDATE
,
itemDataInfo
);
//用添加和更新都统一DOC_UPDATE
//文档数据更新完毕,如果当前没有显示的文档,默认选择一个显示
if
(
GlobalConfig
.
activeDocId
<
1
&&
itemDataInfo
)
{
let
paramInfo
=
{
"itemIdx"
:
itemDataInfo
.
itemIdx
,
"visible"
:
true
};
this
.
documentSwitchDoc
(
paramInfo
);
}
}
loger
.
log
(
'tableInsertHandler 发送给客户端'
);
loger
.
log
(
itemDataInfo
);
this
.
_emit
(
MessageTypes
.
DOC_UPDATE
,
itemDataInfo
);
//用添加和更新都统一DOC_UPDATE
}
tableDeleteHandler
(
object_id
,
tableDeleteData
){
loger
.
log
(
'tableDeleteHandler'
,
object_id
,
tableDeleteData
);
//["tableDeleteHandler",1179649,{"type":231,"itemIdx":[1486301768]}]
if
(
tableDeleteData
&&
tableDeleteData
.
itemIdx
){
let
len
=
tableDeleteData
.
itemIdx
.
length
;
let
itemIdxs
=
tableDeleteData
.
itemIdx
;
for
(
let
i
=
0
;
i
<
len
;
i
++
){
if
(
this
.
docList
[
itemIdxs
[
i
]]){
loger
.
log
(
"删除文档数据:"
,
itemIdxs
[
i
]);
//this._emit(MessageTypes.DOC_DELETE, {"itemIdx": itemIdxs[i]});
let
itemDataInfo
=
this
.
docList
[
itemIdxs
[
i
]];
if
(
itemDataInfo
&&
(
itemDataInfo
.
visible
==
"true"
||
itemDataInfo
.
visible
==
true
)){
GlobalConfig
.
activeDocId
=
0
;
//当前激活的文档ID
GlobalConfig
.
activeDocCurPage
=
1
;
//当前激活的文档的当前页
loger
.
log
(
'tableDeleteHandler 设置当前激活的文档id'
);
}
this
.
_emit
(
MessageTypes
.
DOC_DELETE
,
{
"itemIdx"
:
itemIdxs
[
i
]});
delete
this
.
docList
[
itemIdxs
[
i
]];
}
}
tableDeleteHandler
(
object_id
,
tableDeleteData
)
{
loger
.
log
(
'tableDeleteHandler'
,
object_id
,
tableDeleteData
);
//["tableDeleteHandler",1179649,{"type":231,"itemIdx":[1486301768]}]
if
(
tableDeleteData
&&
tableDeleteData
.
itemIdx
)
{
let
len
=
tableDeleteData
.
itemIdx
.
length
;
let
itemIdxs
=
tableDeleteData
.
itemIdx
;
for
(
let
i
=
0
;
i
<
len
;
i
++
)
{
if
(
this
.
docList
[
itemIdxs
[
i
]])
{
loger
.
log
(
"删除文档数据:"
,
itemIdxs
[
i
]);
//this._emit(MessageTypes.DOC_DELETE, {"itemIdx": itemIdxs[i]});
let
itemDataInfo
=
this
.
docList
[
itemIdxs
[
i
]];
if
(
itemDataInfo
&&
(
itemDataInfo
.
visible
==
"true"
||
itemDataInfo
.
visible
==
true
))
{
GlobalConfig
.
activeDocId
=
0
;
//当前激活的文档ID
GlobalConfig
.
activeDocCurPage
=
1
;
//当前激活的文档的当前页
loger
.
log
(
'tableDeleteHandler->当前显示的文档'
);
}
this
.
_emit
(
MessageTypes
.
DOC_DELETE
,
{
"itemIdx"
:
itemIdxs
[
i
]});
delete
this
.
docList
[
itemIdxs
[
i
]];
}
}
}
}
}
tableUpdateHandler
(
owner
,
itemIdx
,
itemData
)
{
//let itemDataInfo = pdu['RCDocSendDataRequestPdu'].decode(itemData);
let
itemDataInfo
=
this
.
unPackPdu
(
owner
,
itemIdx
,
itemData
);
if
(
itemDataInfo
!=
null
){
this
.
docList
[
itemIdx
]
=
itemDataInfo
;
/* switch (itemDataInfo.action){
case DOC_ACTION_SWITCH_DOC:
break;
case DOC_ACTION_COMMAND:
break;
case DOC_ACTION_NORMAL:
break;
default :
break;
}*/
//GlobalConfig.activeDocId=0;//默认id
// GlobalConfig.activeDocCurPage=1;//默认页数
if
(
itemDataInfo
&&
(
itemDataInfo
.
visible
==
"true"
||
itemDataInfo
.
visible
==
true
)){
GlobalConfig
.
activeDocId
=
itemDataInfo
.
itemIdx
;
//当前激活的文档ID
GlobalConfig
.
activeDocCurPage
=
itemDataInfo
.
curPageNo
;
//当前激活的文档的当前页
loger
.
log
(
'tableUpdateHandler 设置当前激活的文档id'
);
}
loger
.
log
(
'tableUpdateHandler 发送给客户端'
);
loger
.
log
(
itemDataInfo
);
this
.
_emit
(
MessageTypes
.
DOC_UPDATE
,
itemDataInfo
);
}
else
{
loger
.
log
(
'tableUpdateHandler 数据无效--> itemIdx'
,
itemIdx
);
tableUpdateHandler
(
owner
,
itemIdx
,
itemData
)
{
//这个方法废弃,更新用tableUpdateApeHandler方法
/* let itemDataInfo = this.unPackPdu(owner, itemIdx, itemData);
if(itemDataInfo!=null){
this.docList[itemIdx] = itemDataInfo;
if(itemDataInfo&&(itemDataInfo.visible=="true"||itemDataInfo.visible==true)){
GlobalConfig.activeDocId=itemDataInfo.itemIdx;//当前激活的文档ID
GlobalConfig.activeDocCurPage=itemDataInfo.curPageNo;//当前激活的文档的当前页
loger.log('tableUpdateHandler 设置当前激活的文档id');
}
loger.log('tableUpdateHandler 发送给客户端');
loger.log(itemDataInfo);
this._emit(MessageTypes.DOC_UPDATE,itemDataInfo);
}else {
loger.log('tableUpdateHandler 数据无效--> itemIdx',itemIdx);
}*/
}
}
onJoinChannelHandlerSuccess
(){
loger
.
log
(
this
.
_session_name
+
' onJoinChannelHandlerSuccess==========================='
);
if
(
this
.
_apeDelayed
)
{
// this._apeDelayedMsgs.push(regBuffer);
// this._apeDelayedStart();
setTimeout
(()
=>
{
this
.
_emit
(
DocApe
.
DOC_JOIN_CHANNEL_SUCCESS
);
},(
GlobalConfig
.
mcuDelay
+
GlobalConfig
.
docDelay
)
||
12000
+
GlobalConfig
.
docDelay
);
}
else
{
setTimeout
(()
=>
{
this
.
_emit
(
DocApe
.
DOC_JOIN_CHANNEL_SUCCESS
);
},
GlobalConfig
.
docDelay
);
tableUpdateApeHandler
(
_tableUpdateItems
,
_seekTime
)
{
let
tableUpdateItemsLen
=
_tableUpdateItems
.
length
;
loger
.
log
(
'tableUpdateApeHandler'
,
"activeDocId->"
,
GlobalConfig
.
activeDocId
,
"tableUpdateItemsLen->"
,
tableUpdateItemsLen
);
for
(
let
i
=
0
;
i
<
tableUpdateItemsLen
;
++
i
)
{
let
tableItem
=
_tableUpdateItems
[
i
];
let
itemDataInfo
=
this
.
unPackPdu
(
tableItem
.
owner
,
tableItem
.
itemIdx
,
tableItem
.
itemData
);
if
(
itemDataInfo
!=
null
)
{
this
.
docList
[
tableItem
.
itemIdx
]
=
itemDataInfo
;
if
(
itemDataInfo
&&
(
itemDataInfo
.
visible
==
"true"
||
itemDataInfo
.
visible
==
true
))
{
GlobalConfig
.
activeDocId
=
itemDataInfo
.
itemIdx
;
//当前激活的文档ID
GlobalConfig
.
activeDocCurPage
=
itemDataInfo
.
curPageNo
;
//当前激活的文档的当前页
loger
.
log
(
'tableUpdateHandler 设置当前激活的文档id->'
,
GlobalConfig
.
activeDocId
,
"curPageNum->"
,
GlobalConfig
.
activeDocCurPage
);
}
loger
.
log
(
'doc->'
,
itemDataInfo
);
this
.
_emit
(
MessageTypes
.
DOC_UPDATE
,
itemDataInfo
);
}
else
{
loger
.
log
(
'tableUpdateHandler 数据无效--> itemIdx'
,
itemIdx
);
}
}
this
.
_showDefaultDoc
();
}
}
//检查文档是否已经存在,如果存在 返回true,否则返回false
checkDocId
(
_docId
){
if
(
_docId
==
null
){
loger
.
warn
(
'checkDocId _docId参数为null'
);
return
true
;
//果当前没有显示的文档,默认选择一个显示文档
_showDefaultDoc
()
{
//显示默认文档条件->1.非录制回放状态下 2.只有host有权限操作 3.当前激活的文档id不为0
if
(
GlobalConfig
.
isRecordPlayBack
||
!
GlobalConfig
.
isHost
||
GlobalConfig
.
activeDocId
>
0
)
{
return
;
}
let
tempDocItemIdx
;
//临时记录文档数据,用于显示默认文档
for
(
let
key
in
this
.
docList
)
{
tempDocItemIdx
=
this
.
docList
[
key
];
if
(
tempDocItemIdx
)
{
loger
.
log
(
"选择一个文档作为默认文档显示->"
,
tempDocItemIdx
);
let
paramInfo
=
{
"itemIdx"
:
tempDocItemIdx
,
"visible"
:
true
};
this
.
documentSwitchDoc
(
paramInfo
);
//选择完成就跳出循环
return
;
}
}
}
//遍历查找
for
(
let
key
in
this
.
docList
){
let
item
=
this
.
docList
[
key
];
loger
.
log
(
'item.docId==============_docId'
,
item
.
docId
,
_docId
);
if
(
item
&&
item
.
docId
==
_docId
){
return
true
;
}
onJoinChannelHandlerSuccess
()
{
loger
.
log
(
this
.
_session_name
+
' onJoinChannelHandlerSuccess==========================='
);
if
(
this
.
_apeDelayed
)
{
// this._apeDelayedMsgs.push(regBuffer);
// this._apeDelayedStart();
setTimeout
(()
=>
{
this
.
_emit
(
DocApe
.
DOC_JOIN_CHANNEL_SUCCESS
);
},
(
GlobalConfig
.
mcuDelay
+
GlobalConfig
.
docDelay
)
||
12000
+
GlobalConfig
.
docDelay
);
}
else
{
setTimeout
(()
=>
{
this
.
_emit
(
DocApe
.
DOC_JOIN_CHANNEL_SUCCESS
);
},
GlobalConfig
.
docDelay
);
}
}
//储存的数据中没有查找到
return
false
;
}
///////数据的封包和解包/////////////////////////////////////////
packPdu
(
_param
,
_itemIdx
){
loger
.
log
(
"文档===packPdu "
);
//验证坐标点集合数组是否合法
if
(
_param
==
null
||
_itemIdx
==
null
){
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
//检查文档是否已经存在,如果存在 返回true,否则返回false
checkDocId
(
_docId
)
{
if
(
_docId
==
null
)
{
loger
.
warn
(
'checkDocId _docId参数为null'
);
return
true
;
}
//遍历查找
for
(
let
key
in
this
.
docList
)
{
let
item
=
this
.
docList
[
key
];
loger
.
log
(
'item.docId==============_docId'
,
item
.
docId
,
_docId
);
if
(
item
&&
item
.
docId
==
_docId
)
{
return
true
;
}
}
//储存的数据中没有查找到
return
false
;
}
/* message RCDocSendDataModelPdu {
required uint32 item_idx=1;//唯一标识
required uint32 owner=2;
optional uint32 from=3;
optional uint32 cur_page_no=4;
optional uint32 page_num =5;
optional string file_type=6;
optional string creat_user_id=7;//创建文档userid
optional string relative_url=8;//文档相对地址
optional string url =9;//文档地址
optional uint32 cur_V=10;
optional uint32 cur_H=11;
optional uint32 scale=12;
optional bool visible=13;
optional uint32 action=14;//0,无操作, 1翻页 /缩放/滚动、2.显示/隐藏
optional string doc_id=15;//文档在服务器数据库中的唯一id
optional string file_name=16;//文档的名字
optional string dynamic_TS=17;//"dynamicTransferStatic": "0"
optional string md5=18;//md5
optional uint32 show_type=19;//显示模式
}*/
//判断type类型,根据type设置不同的参数
let
docModelPdu
=
new
pdu
[
'RCDocSendDataModelPdu'
];
docModelPdu
.
itemIdx
=
_itemIdx
;
docModelPdu
.
owner
=
GlobalConfig
.
nodeId
;
docModelPdu
.
from
=
GlobalConfig
.
nodeId
;
docModelPdu
.
curPageNo
=
_param
.
curPageNo
||
1
;
docModelPdu
.
pageNum
=
_param
.
pageNum
||
1
;
docModelPdu
.
fileType
=
_param
.
fileType
||
""
;
docModelPdu
.
creatUserId
=
_param
.
creatUserId
||
"0"
;
docModelPdu
.
url
=
""
;
//这个地址没用到,数据太长占用资源 暂停使用//"http://101.200.150.192/DocSharing/data/h5test/20170206-171100025/7e9c4178cac1133e0dd9d5b583439122.jpg";
docModelPdu
.
relativeUrl
=
_param
.
relativeUrl
||
""
;
//"/DocSharing/data/h5test/20170206-171100025/7e9c4178cac1133e0dd9d5b583439122.jpg";
docModelPdu
.
curV
=
_param
.
curV
||
0
;
docModelPdu
.
curH
=
_param
.
curH
||
0
;
docModelPdu
.
scale
=
_param
.
scale
||
100
;
//按百分比
docModelPdu
.
visible
=
_param
.
visible
||
false
;
docModelPdu
.
action
=
_param
.
action
||
ApeConsts
.
DOC_ACTION_NORMAL
;
//0,无操作, 1翻页、2.显示/隐藏, 3缩放/滚动
docModelPdu
.
docId
=
_param
.
docId
||
""
;
//文档在服务器数据库中的唯一id,必须有
docModelPdu
.
md5
=
_param
.
md5
||
""
;
//MD5
docModelPdu
.
fileName
=
_param
.
fileName
||
"doc_"
+
_itemIdx
;
//文档的名字
docModelPdu
.
dynamicTS
=
_param
.
dynamicTS
||
"0"
;
//文档上传后返回值中的字段dynamicTransferStatic
docModelPdu
.
showType
=
_param
.
showType
||
0
;
//文档显示模式
loger
.
log
(
docModelPdu
);
return
docModelPdu
;
}
unPackPdu
(
owner
,
itemIdx
,
itemData
){
loger
.
log
(
"文档===unPackPdu "
);
if
(
owner
==
null
||
itemIdx
==
null
||
itemData
==
null
){
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
///////数据的封包和解包/////////////////////////////////////////
packPdu
(
_param
,
_itemIdx
)
{
loger
.
log
(
"文档===packPdu "
);
//验证坐标点集合数组是否合法
if
(
_param
==
null
||
_itemIdx
==
null
)
{
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
}
/* message RCDocSendDataModelPdu {
required uint32 item_idx=1;//唯一标识
required uint32 owner=2;
optional uint32 from=3;
optional uint32 cur_page_no=4;
optional uint32 page_num =5;
optional string file_type=6;
optional string creat_user_id=7;//创建文档userid
optional string relative_url=8;//文档相对地址
optional string url =9;//文档地址
optional uint32 cur_V=10;
optional uint32 cur_H=11;
optional uint32 scale=12;
optional bool visible=13;
optional uint32 action=14;//0,无操作, 1翻页 /缩放/滚动、2.显示/隐藏
optional string doc_id=15;//文档在服务器数据库中的唯一id
optional string file_name=16;//文档的名字
optional string dynamic_TS=17;//"dynamicTransferStatic": "0"
optional string md5=18;//md5
optional uint32 show_type=19;//显示模式
}*/
//判断type类型,根据type设置不同的参数
let
docModelPdu
=
new
pdu
[
'RCDocSendDataModelPdu'
];
docModelPdu
.
itemIdx
=
_itemIdx
;
docModelPdu
.
owner
=
GlobalConfig
.
nodeId
;
docModelPdu
.
from
=
GlobalConfig
.
nodeId
;
docModelPdu
.
curPageNo
=
_param
.
curPageNo
||
1
;
docModelPdu
.
pageNum
=
_param
.
pageNum
||
1
;
docModelPdu
.
fileType
=
_param
.
fileType
||
""
;
docModelPdu
.
creatUserId
=
_param
.
creatUserId
||
"0"
;
docModelPdu
.
url
=
""
;
//这个地址没用到,数据太长占用资源 暂停使用//"http://101.200.150.192/DocSharing/data/h5test/20170206-171100025/7e9c4178cac1133e0dd9d5b583439122.jpg";
docModelPdu
.
relativeUrl
=
_param
.
relativeUrl
||
""
;
//"/DocSharing/data/h5test/20170206-171100025/7e9c4178cac1133e0dd9d5b583439122.jpg";
docModelPdu
.
curV
=
_param
.
curV
||
0
;
docModelPdu
.
curH
=
_param
.
curH
||
0
;
docModelPdu
.
scale
=
_param
.
scale
||
100
;
//按百分比
docModelPdu
.
visible
=
_param
.
visible
||
false
;
docModelPdu
.
action
=
_param
.
action
||
ApeConsts
.
DOC_ACTION_NORMAL
;
//0,无操作, 1翻页、2.显示/隐藏, 3缩放/滚动
docModelPdu
.
docId
=
_param
.
docId
||
""
;
//文档在服务器数据库中的唯一id,必须有
docModelPdu
.
md5
=
_param
.
md5
||
""
;
//MD5
docModelPdu
.
fileName
=
_param
.
fileName
||
"doc_"
+
_itemIdx
;
//文档的名字
docModelPdu
.
dynamicTS
=
_param
.
dynamicTS
||
"0"
;
//文档上传后返回值中的字段dynamicTransferStatic
docModelPdu
.
showType
=
_param
.
showType
||
0
;
//文档显示模式
loger
.
log
(
docModelPdu
);
return
docModelPdu
;
}
try
{
let
docModelPdu
=
pdu
[
'RCDocSendDataModelPdu'
].
decode
(
itemData
);
//loger.log(docModelPdu);
return
docModelPdu
;
}
catch
(
err
){
loger
.
log
(
"文档收到数据 unPackPdu Pdu解析错误,itemIdx="
+
itemIdx
+
" err:"
+
err
.
message
);
unPackPdu
(
owner
,
itemIdx
,
itemData
)
{
loger
.
log
(
"文档===unPackPdu "
);
if
(
owner
==
null
||
itemIdx
==
null
||
itemData
==
null
)
{
this
.
_emit
(
MessageTypes
.
MCU_ERROR
,
MessageTypes
.
ERR_APE_INTERFACE_PARAM_WRONG
);
return
null
;
}
try
{
let
docModelPdu
=
pdu
[
'RCDocSendDataModelPdu'
].
decode
(
itemData
);
//loger.log(docModelPdu);
return
docModelPdu
;
}
catch
(
err
)
{
loger
.
log
(
"文档收到数据 unPackPdu Pdu解析错误,itemIdx="
+
itemIdx
+
" err:"
+
err
.
message
);
}
return
null
;
}
return
null
;
}
}
...
...
请
注册
或
登录
后发表评论