|
- var EnumOAFlag = {
- DocFromOA: 1,
- DocFromNoOA: 0
- }
-
-
- var EnumDocSaveFlag = {
- OADocSave: 1,
- NoneOADocSave: 0
- }
-
-
- var EnumDocLandMode = {
- DLM_LocalDoc: 0,
- DLM_OnlineDoc: 1
- }
-
-
- function OnWPSWorkTabLoad(ribbonUI) {
- wps.ribbonUI = ribbonUI;
-
- OnJSWorkInit();
- activeTab();
- OpenTimerRun(OnDocSaveByAutoTimer);
- return true;
- }
-
-
- function OnJSWorkInit() {
- pInitParameters();
- AddPresentationEvent();
- }
-
-
-
- function pInitParameters() {
- wps.PluginStorage.setItem("OADocUserSave", EnumDocSaveFlag.NoneOADocSave);
- wps.PluginStorage.setItem("OADocCanSaveAs", false);
- wps.PluginStorage.setItem("AllowOADocReOpen", false);
- wps.PluginStorage.setItem("ShowOATabDocActive", false);
-
- wps.PluginStorage.setItem("DefaultUploadFieldName", "file");
-
- wps.PluginStorage.setItem("AutoSaveToServerTime", "10");
- wps.PluginStorage.setItem("TempTimerID", "0");
-
-
- wps.PluginStorage.setItem("IsInCurrOADocOpen", false);
- wps.PluginStorage.setItem("IsInCurrOADocSaveAs", false);
- }
-
-
- function AddPresentationEvent() {
- wps.ApiEvent.AddApiEventListener("WindowActivate", OnWindowActivate);
- wps.ApiEvent.AddApiEventListener("PresentationBeforeClose", OnPresentationBeforeClose);
- wps.ApiEvent.AddApiEventListener("DocumentRightsInfo", OnDocumentRightsInfo);
-
- console.log("AddPresentationEvent");
- }
-
-
- function GetDocParamsValue(Doc, Key) {
- if (!Doc) {
- return "";
- }
-
- var l_Params = wps.PluginStorage.getItem(Doc.FullName);
- if (!l_Params) {
- return "";
- }
-
- var l_objParams = JSON.parse(l_Params);
- if (typeof (l_objParams) == "undefined") {
- return "";
- }
-
- var l_rtnValue = l_objParams[Key];
- if (typeof (l_rtnValue) == "undefined" || l_rtnValue == null) {
- return "";
- }
- return l_rtnValue;
- }
-
-
- function pShowRibbonGroupByOADocParam(CtrlID) {
- var l_Doc = wps.WppApplication().ActivePresentation;
- if (!l_Doc) {
- return false;
- }
-
-
- var l_grpButtonParams = GetDocParamsValue(l_Doc, "buttonGroups");
- l_grpButtonParams = l_grpButtonParams + "," + GetDocParamsValue(l_Doc, "disableBtns");
-
-
-
- if (typeof (l_grpButtonParams) == "string") {
- var l_arrayGroup = new Array();
- l_arrayGroup = l_grpButtonParams.split(",");
-
-
-
- if (l_arrayGroup.indexOf(CtrlID) >= 0) {
- return false;
- }
- }
-
- if (CtrlID == "WPSWorkExtTab") {
- var l_value = wps.PluginStorage.getItem("ShowOATabDocActive");
- wps.PluginStorage.setItem("ShowOATabDocActive", false);
- console.log("菜单:" + l_value);
- return l_value;
- }
-
- return true;
- }
-
-
- function OnUploadToServerSuccess(resp) {
- var l_doc = wps.WppApplication().ActivePresentation;
- if (wps.confirm("文件上传成功!继续编辑请确认,取消关闭文档。") == false) {
- if (l_doc) {
- console.log("OnUploadToServerSuccess: before Close");
- l_doc.Close();
- console.log("OnUploadToServerSuccess: after Close");
- }
- }
-
- var l_NofityURL = GetDocParamsValue(l_doc, "notifyUrl");
- if (l_NofityURL != "") {
- l_NofityURL = l_NofityURL.replace("{?}", "2");
- NotifyToServer(l_NofityURL);
- }
- }
-
- function OnUploadToServerFail(resp) {
- alert("文件上传失败!");
- }
-
-
- function pCheckIfOADoc() {
- var doc = wps.WppApplication().ActivePresentation;
- console.log("先判断是否有doc对象")
- if (!doc)
- return false;
- return CheckIfDocIsOADoc(doc);
- }
-
-
- function CheckIfDocIsOADoc(doc) {
- if (!doc) {
- return false;
- }
-
- var l_isOA = GetDocParamsValue(doc, "isOA");
- if (l_isOA == "") {
- return false
- }
-
- return l_isOA == EnumOAFlag.DocFromOA ? true : false;
- }
-
-
- function OnSetSaveToOAEnable() {
- return pCheckIfOADoc();
- }
-
-
- function pIsOnlineOADoc(doc) {
- var l_LandMode = GetDocParamsValue(doc, "OADocLandMode");
- if (l_LandMode == "") {
- return false;
- }
- return l_LandMode == EnumDocLandMode.DLM_OnlineDoc;
- }
-
-
- function OnBtnSaveToServer() {
-
- var l_doc = wps.WppApplication().ActivePresentation;
- if (!l_doc) {
- alert("空文档不能保存!");
- return;
- }
-
-
- if (pCheckIfOADoc() == false) {
- alert("非系统打开的文档,不能直接上传到系统!");
- return;
- }
-
-
-
- var l_uploadPath = GetDocParamsValue(l_doc, "uploadPath");
- if (l_uploadPath == "") {
- wps.alert("系统未传入文件上载路径,不能执行上传操作!");
- return;
- }
-
- if (!wps.confirm("先保存文档,并开始上传到系统后台,请确认?")) {
- return;
- }
-
- var l_FieldName = GetDocParamsValue(l_doc, "uploadFieldName");
- if (l_FieldName == "") {
- l_FieldName = wps.PluginStorage.getItem("DefaultUploadFieldName");
- }
-
- var l_UploadName = GetDocParamsValue(l_doc, "uploadFileName");
- if (l_UploadName == "") {
- l_UploadName = l_doc.Name;
- }
-
- var l_DocPath = l_doc.FullName;
-
- if (pIsOnlineOADoc(l_doc) == false) {
-
-
- wps.PluginStorage.setItem("OADocUserSave", EnumDocSaveFlag.OADocSave);
- l_doc.Save();
-
- wps.PluginStorage.setItem("OADocUserSave", EnumDocSaveFlag.NoneOADocSave);
-
- try {
-
- wps.OAAssist.UploadFile(l_UploadName, l_DocPath, l_uploadPath, l_FieldName, "OnUploadToServerSuccess", "OnUploadToServerFail");
- } catch (err) {
- alert("上传文件失败!请检查系统上传参数及网络环境!");
- }
- } else {
-
- wps.PluginStorage.setItem("OADocUserSave", EnumDocSaveFlag.OADocSave);
- try {
-
- l_doc.SaveAsUrl(l_UploadName, l_uploadPath, l_FieldName, "OnUploadToServerSuccess", "OnUploadToServerFail");
- } catch (err) {
- alert("上传文件失败!请检查系统上传参数及网络环境,重新上传。");
- }
- wps.PluginStorage.setItem("OADocUserSave", EnumDocSaveFlag.NoneOADocSave);
- }
-
-
- var l_suffix = GetDocParamsValue(l_doc, "suffix");
- if (l_suffix == "") {
- console.log("上传需转换的文件后缀名错误,无妨进行转换上传!");
- return;
- }
-
-
- var l_uploadWithAppendPath = GetDocParamsValue(l_doc, "uploadWithAppendPath");
- if (l_uploadWithAppendPath == "1") {
-
- pDoChangeToOtherDocFormat(l_doc, l_suffix, false, false);
- }
- return;
- }
-
-
- function OnBtnSaveAsLocalFile() {
-
-
- wps.PluginStorage.setItem("OADocUserSave", false);
- wps.PluginStorage.setItem("IsInCurrOADocSaveAs", false);
-
-
- var l_doc = wps.WppApplication().ActivePresentation;
- if (!l_doc) {
- alert("WPS当前没有可操作文档!");
- return;
- }
-
-
- var l_ksoFileDialog = wps.WppApplication().FileDialog(2);
- l_ksoFileDialog.InitialFileName = l_doc.Name;
-
- if (l_ksoFileDialog.Show() == -1) {
- wps.PluginStorage.setItem("OADocUserSave", true);
- l_ksoFileDialog.Execute();
-
- pSetNoneOADocFlag(l_doc.FullName);
-
- wps.ribbonUI.Invalidate();
- };
- }
-
-
- function GetParamsValue(Params, Key) {
- if (typeof (Params) == "undefined") {
- return "";
- }
-
- var l_rtnValue = Params[Key];
- return l_rtnValue;
- }
-
- function OnAction(control) {
- var strId = typeof (control) == "object" ? control.Id : control;
- switch (strId) {
- case "btnSaveToServer":
- OnBtnSaveToServer();
- break;
- case "btnSaveAsFile":
- OnBtnSaveAsLocalFile();
- break;
- default:
- ;
- }
- return true;
- }
-
- function OnGetEnabled(control) {
- var eleId;
- if (typeof control == "object" && arguments.length == 1) {
- eleId = control.Id;
- } else if (typeof control == "undefined" && arguments.length > 1) {
- eleId = arguments[1].Id;
- console.log(eleId)
- } else if (typeof control == "boolean" && arguments.length > 1) {
- eleId = arguments[1].Id;
- } else if (typeof control == "number" && arguments.length > 1) {
- eleId = arguments[2].Id;
- }
- switch (eleId) {
- case "btnSaveToServer":
- case "btnChangeToPDF":
- case "btnChangeToUOT":
- case "btnChangeToOFD":
- return OnSetSaveToOAEnable();
- case "SaveAsPDF":
- case "SaveAsOfd":
- case "SaveAsPicture":
- case "FileMenuSendMail":
- case "FileSaveAsPicture":
- case "FileSaveAsPdfOrXps":
- case "VisualBasic":
- case "MacroPlay":
- return OnSetSaveAsRightsEnable();
- default:
- ;
- }
- return true;
- }
-
- function OnGetVisible(control) {
- var eleId = typeof (control) == "object" ? control.Id : control;
- var l_value = false;
-
- l_value = pShowRibbonGroupByOADocParam(eleId);
- return l_value;
- }
-
- function GetImage(control) {
- var eleId = typeof (control) == "object" ? control.Id : control;
- switch (eleId) {
- case "btnSaveToServer":
- return "./icon/w_Save.png";
- case "btnSaveAsFile":
- return "./icon/w_SaveAs.png";
- default:
- ;
- }
- return "./icon/c_default.png";
- }
-
- function OnGetLabel(control) {
- var eleId = typeof (control) == "object" ? control.Id : control;
- switch (eleId) {
- case "btnSaveAsFile":
- return "另存为本地";
- default:
- ;
- }
- return "";
- }
|