|
- var EnumOAFlag = {
- DocFromOA: 1,
- DocFromNoOA: 0
- }
-
- //记录是否用户点击OA文件的保存按钮
- var EnumDocSaveFlag = {
- OADocSave: 1,
- NoneOADocSave: 0
- }
-
- //标识文档的落地模式 本地文档落地 0 ,不落地 1
- var EnumDocLandMode = {
- DLM_LocalDoc: 0,
- DLM_OnlineDoc: 1
- }
-
- //加载时会执行的方法
- function OnWPSWorkTabLoad(ribbonUI) {
- wps.ribbonUI = ribbonUI;
- if (typeof(wps.Enum) == "undefined") { // 如果没有内置枚举值
- wps.Enum = WPS_Enum;
- }
- OnJSWorkInit(); //初始化文档事件(全局参数,挂载监听事件)
- // setTimeout(activeTab,2000); // 激活OA助手菜单
- OpenTimerRun(OnDocSaveByAutoTimer); //启动定时备份过程
- return true;
- }
-
- //文档各类初始化工作(WPS Js环境)
- function OnJSWorkInit() {
- pInitParameters(); //OA助手环境的所有配置控制的初始化过程
- AddDocumentEvent(); //挂接文档事件处理函数
- }
-
- //初始化全局参数
- function pInitParameters() {
- wps.PluginStorage.setItem(constStrEnum.OADocUserSave, EnumDocSaveFlag.NoneOADocSave); //初始化,没有用户点击保存按钮
-
- var l_wpsUserName = wps.WpsApplication().UserName;
- wps.PluginStorage.setItem(constStrEnum.WPSInitUserName, l_wpsUserName); //在OA助手加载前,先保存用户原有的WPS应用用户名称
-
- wps.PluginStorage.setItem(constStrEnum.OADocCanSaveAs, false); //默认OA文档不能另存为本地
- wps.PluginStorage.setItem(constStrEnum.AllowOADocReOpen, false); //设置是否允许来自OA的文件再次被打开
- wps.PluginStorage.setItem(constStrEnum.ShowOATabDocActive, false); //设置新打开文档是否默认显示OA助手菜单Tab 默认为false
-
- wps.PluginStorage.setItem(constStrEnum.DefaultUploadFieldName, "file"); //针对UploadFile方法设置上载字段名称
-
- wps.PluginStorage.setItem(constStrEnum.AutoSaveToServerTime, "10"); //自动保存回OA服务端的时间间隔。如果设置0,则关闭,最小设置3分钟
- wps.PluginStorage.setItem(constStrEnum.TempTimerID, "0"); //临时值,用于保存计时器ID的临时值
-
- // 以下是一些临时状态参数,用于打开文档等的状态判断
- wps.PluginStorage.setItem(constStrEnum.IsInCurrOADocOpen, false); //用于执行来自OA端的新建或打开文档时的状态
- wps.PluginStorage.setItem(constStrEnum.IsInCurrOADocSaveAs, false); //用于执行来自OA端的文档另存为本地的状态
- wps.PluginStorage.setItem(constStrEnum.RevisionEnableFlag, false) //按钮的标记控制
- wps.PluginStorage.setItem(constStrEnum.Save2OAShowConfirm, true); //弹出上传成功后的提示信息
- }
-
- //挂载WPS的文档事件
- function AddDocumentEvent() {
- wps.ApiEvent.AddApiEventListener("WindowActivate", OnWindowActivate);
- wps.ApiEvent.AddApiEventListener("DocumentBeforeSave", OnDocumentBeforeSave);
- wps.ApiEvent.AddApiEventListener("DocumentBeforeClose", OnDocumentBeforeClose);
- wps.ApiEvent.AddApiEventListener("DocumentAfterClose", OnDocumentAfterClose);
- wps.ApiEvent.AddApiEventListener("DocumentBeforePrint", OnDocumentBeforePrint);
- wps.ApiEvent.AddApiEventListener("DocumentOpen", OnDocumentOpen);
- wps.ApiEvent.AddApiEventListener("DocumentNew", OnDocumentNew);
- // wps.ApiEvent.AddApiEventListener("NewDocument", OnDocumentNew);
- console.log("AddDocumentEvent");
- }
-
- /**
- * 打开插入书签页面
- */
- function OnInsertBookmarkToDoc() {
- if (!wps.WpsApplication().ActiveDocument) {
- return;
- }
- OnShowDialog("selectBookmark.html", "自定义书签", 700, 440, false);
- }
-
- /**
- * 作用:打开当前文档的页面设置对话框
- */
- function OnPageSetupClicked() {
- var wpsApp = wps.WpsApplication();
- var doc = wpsApp.ActiveDocument;
- if (!doc) {
- return;
- }
- wpsApp.Dialogs.Item(wps.Enum&&wps.Enum.wdDialogFilePageSetup||178).Show();
- }
-
- /**
- * 作用:打开当前文档的打印设置对话框
- */
- function OnPrintDocBtnClicked() {
- var wpsApp = wps.WpsApplication();
- var doc = wpsApp.ActiveDocument;
- if (!doc) {
- return;
- }
- wpsApp.Dialogs.Item(wps.Enum&&wps.Enum.wdDialogFilePrint||88).Show();
- }
-
-
- /**
- * 作用:接受所有修订内容
- *
- */
- function OnAcceptAllRevisions() {
- //获取当前文档对象
- var l_Doc = wps.WpsApplication().ActiveDocument;
- if (!l_Doc) {
- return;
- }
- if (l_Doc.Revisions.Count >= 1) {
- if (!wps.confirm("目前有" + l_Doc.Revisions.Count + "个修订信息,是否全部接受?")) {
- return;
- }
- l_Doc.AcceptAllRevisions();
- }
- }
-
-
- /**
- * 作用:拒绝当前文档的所有修订内容
- */
- function OnRejectAllRevisions() {
- var l_Doc = wps.WpsApplication().ActiveDocument;
- if (!l_Doc) {
- return;
- }
- if (l_Doc.Revisions.Count >= 1) {
- l_Doc.RejectAllRevisions();
- }
- }
-
-
- /**
- * 作用:把当前文档修订模式关闭
- */
- function OnCloseRevisions() {
- //获取当前文档对象
- var l_Doc = wps.WpsApplication().ActiveDocument;
- OnRevisionsSwitch(l_Doc, false);
- }
-
-
- /**
- * 作用:把当前文档修订模式打开
- */
- function OnOpenRevisions() {
- //获取当前文档对象
- var l_Doc = wps.WpsApplication().ActiveDocument;
- OnRevisionsSwitch(l_Doc, true);
- }
-
- function OnRevisionsSwitch(doc, openRevisions) {
- if (!doc) {
- return;
- }
- var l_activeWindow = doc.ActiveWindow;
- if (l_activeWindow) {
- var v = l_activeWindow.View;
- if (v) {
- //WPS 显示使用“修订”功能对文档所作的修订和批注
- v.ShowRevisionsAndComments = openRevisions;
- //WPS 显示从文本到修订和批注气球之间的连接线
- v.RevisionsBalloonShowConnectingLines = openRevisions;
- }
- if (openRevisions == true) {
- //去掉修改痕迹信息框中的接受修订和拒绝修订勾叉,使其不可用
- wps.WpsApplication().CommandBars.ExecuteMso("KsoEx_RevisionCommentModify_Disable");
- }
-
- //RevisionsMode:
- //wdBalloonRevisions 0 在左边距或右边距的气球中显示修订。
- //wdInLineRevisions 1 在正文中显示修订,使用删除线表示删除,使用下划线表示插入。
- // 这是 Word 早期版本的默认设置。
- //wdMixedRevisions 2 不支持。
- doc.TrackRevisions = openRevisions; // 开关修订
- l_activeWindow.ActivePane.View.RevisionsMode = 2; //2为不支持气球显示。
-
- }
- }
-
- /**
- * 作用:打开扫描仪
- */
- function OnOpenScanBtnClicked() {
- var doc = wps.WpsApplication().ActiveDocument;
- if (!doc) {
- return;
- }
- //打开扫描仪
- try {
- wps.WpsApplication().WordBasic.InsertImagerScan(); //打开扫描仪
- } catch (err) {
- alert("打开扫描仪的过程遇到问题。");
- }
- }
-
- /**
- * 作用:在文档的当前光标处插入从前端传递来的图片
- * OA参数中 picPath 是需要插入的图片路径
- * 图片插入的默认版式是在浮于文档上方
- */
- function DoInsertPicToDoc() {
- console.log("DoInsertPicToDoc...");
-
- var l_doc; //文档对象
- l_doc = wps.WpsApplication().ActiveDocument;
- if (!l_doc) {
- return;
- }
-
- //获取当前文档对象对应的OA参数
- var l_picPath = GetDocParamsValue(l_doc, constStrEnum.picPath); // 获取OA参数传入的图片路径
- if (l_picPath == "") {
- // alert("未获取到系统传入的图片URL路径,不能正常插入图片");
- // return;
- //如果没有传,则默认写一个图片地址
- l_picPath="http://127.0.0.1:3888/file/OA模板公章.png"
- }
-
- var l_picHeight = GetDocParamsValue(l_doc, constStrEnum.picHeight); //图片高
- var l_picWidth = GetDocParamsValue(l_doc, constStrEnum.picWidth); //图片宽
-
- if (l_picHeight == "") { //设定图片高度
- l_picHeight = 39.117798; //13.8mm=39.117798磅
- }
- if (l_picWidth == "") { //设定图片宽度
- l_picWidth = 72; //49.7mm=140.880768磅
- }
-
- var l_shape = l_doc.Shapes.AddPicture(l_picPath, false, true);
- l_shape.Select();
- // l_shape.WrapFormat.Type = wps.Enum&&wps.Enum.wdWrapBehind||5; //图片的默认版式为浮于文字上方,可通过此设置图片环绕模式
- }
- /**
- * 作用:模拟插入签章图片
- * @param {*} doc 文档对象
- * @param {*} picPath 图片路径
- * @param {*} picWidth 图片宽度
- * @param {*} picHeight 图片高度
- */
- function OnInsertPicToDoc(doc, picPath, picWidth, picHeight,callBack) {
- // alert("图片路径:"+picPath);
- if (!doc) {
- return;
- }
- if (typeof picPath == "undefined" || picPath == null || picPath == "") {
- alert("未获取到系统传入的图片URL路径,不能正常插入印章");
- return;
- }
- if (!picWidth) { //设定图片宽度
- picWidth = 95; //49.7mm=140.880768磅
- }
- if (!picHeight) { //设定图片高度
- picHeight = 40; //13.8mm=39.117798磅
- }
-
- var selection = doc.ActiveWindow.Selection; // 活动窗口选定范围或插入点
- var pagecount = doc.BuiltInDocumentProperties.Item(wps.Enum&&wps.Enum.wdPropertyPages||14); //获取文档页数
- selection.GoTo(wps.Enum&&wps.Enum.wdGoToPage||1, wps.Enum&&wps.Enum.wdGoToPage||1, pagecount.Value); //将光标指向文档最后一页
- DownloadFile(picPath,function(url){
- selection.ParagraphFormat.LineSpacing = 12 //防止文档设置了固定行距
- var picture = selection.InlineShapes.AddPicture(url, true, true); //插入图片
- wps.FileSystem.Remove(url) //删除本地的图片
- picture.LockAspectRatio = 0; //在调整形状大小时可分别改变其高度和宽度
- picture.Height = picHeight; //设定图片高度
- picture.Width = picWidth; //设定图片宽度
- picture.LockAspectRatio = 0;
- picture.Select(); //当前图片为焦点
-
- //定义印章图片对象
- var seal_shape = picture.ConvertToShape(); //类型转换:嵌入型图片->粘贴版型图片
-
- seal_shape.RelativeHorizontalPosition = wps.Enum&&wps.Enum.wdRelativeHorizontalPositionPage||1;
- seal_shape.RelativeVerticalPosition = wps.Enum&&wps.Enum.wdRelativeVerticalPositionPage||1;
- seal_shape.Left = 315; //设置指定形状或形状范围的垂直位置(以磅为单位)。
- seal_shape.Top = 630; //指定形状或形状范围的水平位置(以磅为单位)。
- callBack&&callBack()
- })
-
- }
-
-
-
- /**
- * 作用: 把当前文档保存为其他格式的文档并上传
- * @param {*} p_FileSuffix 输出的目标格式后缀名,支持:.pdf .uof .uot .ofd
- * @param {*} pShowPrompt 是否弹出用户确认框
- */
- function OnDoChangeToOtherDocFormat(p_FileSuffix, pShowPrompt) {
- var l_suffix = p_FileSuffix; // params.suffix;
- if (!l_suffix) {
- return;
- }
- //获取当前执行格式转换操作的文档
- var l_doc = wps.WpsApplication().ActiveDocument;
- if (!l_doc) {
- return;
- }
- console.log(pShowPrompt)
- if (typeof(pShowPrompt) == "undefined") {
- pShowPrompt = true; //默认设置为弹出用户确认框
- }
- //默认设置为以当前文件的显示模式输出,即当前为修订则输出带有修订痕迹的
- pDoChangeToOtherDocFormat(l_doc, l_suffix, pShowPrompt, true);
- }
- /**
- * 作用:获取文档的Path或者临时文件路径
- * @param {*} doc
- */
- function getDocSavePath(doc) {
- if (!doc) {
- return;
- }
- if (doc.Path == "") { //对于不落地文档,文档路径为空
- return wps.Env.GetTempPath();
- } else {
- return doc.Path
- }
- }
- /**
- * 作用:把当前文档输出为另外的格式保存
- * @param {*} p_Doc 文档对象
- * @param {*} p_Suffix 另存为的目标文件格式
- * @param {*} pShowPrompt 是否弹出用户确认框
- * @param {*} p_ShowRevision :是否强制关闭修订,如果是False,则强制关闭痕迹显示。如果为true则不做控制输出。
- */
- function pDoChangeToOtherDocFormat(p_Doc, p_Suffix, pShowPrompt, p_ShowRevision) {
- if (!p_Doc) {
- return;
- }
-
- var l_suffix = p_Suffix;
- //获取该文档对应OA参数的上载路径
- var l_uploadPath = GetDocParamsValue(p_Doc, constStrEnum.uploadAppendPath);
- if (l_uploadPath == "" || l_uploadPath == null) {
- l_uploadPath = GetDocParamsValue(p_Doc, constStrEnum.uploadPath);
- }
- var l_FieldName = GetDocParamsValue(p_Doc, constStrEnum.uploadFieldName);
- if (l_FieldName == "") {
- l_FieldName = wps.PluginStorage.getItem(constStrEnum.DefaultUploadFieldName); //默认是'file'
- }
-
- if (l_uploadPath == "" && pShowPrompt == true) {
- alert("系统未传入有效上载文件路径!不能继续转换操作。"); //如果OA未传入上载路径,则给予提示
- return;
- }
-
- if (pShowPrompt == true) {
- if (!wps.confirm("当前文档将另存一份" + l_suffix + " 格式的副本,并上传到系统后台,请确认 ?")) {
- return;
- }
- }
-
- // 先把文档输出保存为指定的文件格式,再上传到后台
- wps.PluginStorage.setItem(constStrEnum.OADocUserSave, true); //设置一个临时变量,用于在BeforeSave事件中判断
- if (p_ShowRevision == false) { // 强制关闭痕迹显示
- var l_SourceName = p_Doc.Name;
- var l_NewName="";
- var docPath=getDocSavePath(p_Doc);
- if(docPath.indexOf("\\")>0){
- l_NewName = docPath + "\\B_" + p_Doc.Name;
- }else{
- l_NewName = docPath + "/B_" + p_Doc.Name;
- }
- if(docPath.indexOf("\\")>0){
- l_SourceName = docPath + "\\" + l_SourceName;
- }else{
- l_SourceName = docPath + "/" + l_SourceName;
- }
-
- p_Doc.SaveAs2($FileName = l_NewName, $AddToRecentFiles = false);
- p_Doc.SaveAs2($FileName = l_SourceName, $AddToRecentFiles = false);
- //以下以隐藏模式打开另一个文档
- var l_textEncoding = wps.WpsApplication().Options.DefaultTextEncoding; //默认 936
- var l_Doc = wps.WpsApplication().Documents.Open(l_NewName, false, false, false, "", "", false, "", "", 0, l_textEncoding, false);
-
- l_Doc.TrackRevisions = false; //关闭修订模式
- l_Doc.ShowRevisions = false; //隐含属性,隐藏修订模式
- l_Doc.AcceptAllRevisions();
- l_Doc.Save();
- handleFileAndUpload(l_suffix, l_Doc, l_uploadPath, l_FieldName);
- l_Doc.Close();
- wps.FileSystem.Remove(l_NewName); //删除临时文档
- } else {
- handleFileAndUpload(l_suffix, p_Doc, l_uploadPath, l_FieldName);
- }
-
- wps.PluginStorage.setItem(constStrEnum.OADocUserSave, false);
-
- return;
- }
-
- /**
- * 把文档转换成UOT在上传
- */
- function OnDoChangeToUOF() {}
-
- /**
- * 打开WPS云文档的入口
- */
- function pDoOpenWPSCloundDoc() {
- wps.TabPages.Add("https://www.kdocs.cn");
- }
-
- /**
- * 执行另存为本地文件操作
- */
- function OnBtnSaveAsLocalFile() {
-
- //初始化临时状态值
- wps.PluginStorage.setItem(constStrEnum.OADocUserSave, false);
- wps.PluginStorage.setItem(constStrEnum.IsInCurrOADocSaveAs, false);
-
- //检测是否有文档正在处理
- var l_doc = wps.WpsApplication().ActiveDocument;
- if (!l_doc) {
- alert("WPS当前没有可操作文档!");
- return;
- }
-
- // 设置WPS文档对话框 2 FileDialogType:=msoFileDialogSaveAs
- var l_ksoFileDialog = wps.WpsApplication().FileDialog(2);
- l_ksoFileDialog.InitialFileName = l_doc.Name; //文档名称
-
- if (l_ksoFileDialog.Show() == -1) { // -1 代表确认按钮
- //alert("确认");
- wps.PluginStorage.setItem(constStrEnum.OADocUserSave, true); //设置保存为临时状态,在Save事件中避免OA禁止另存为对话框
- l_ksoFileDialog.Execute(); //会触发保存文档的监听函数
-
- pSetNoneOADocFlag(l_doc);
-
- wps.ribbonUI.Invalidate(); //刷新Ribbon的状态
-
- };
- }
-
- //
- /**
- * 作用:执行清稿按钮操作
- * 业务功能:清除所有修订痕迹和批注
- */
- function OnBtnClearRevDoc() {
- var doc = wps.WpsApplication().ActiveDocument;
- if (!doc) {
- alert("尚未打开文档,请先打开文档再进行清稿操作!");
- }
-
- //执行清稿操作前,给用户提示
- if (!wps.confirm("清稿操作将接受所有的修订内容,关闭修订显示。请确认执行清稿操作?")) {
- return;
- }
-
- //接受所有修订
- if (doc.Revisions.Count >= 1) {
- doc.AcceptAllRevisions();
- }
- //去除所有批注
- if (doc.Comments.Count >= 1) {
- doc.RemoveDocumentInformation(wps.Enum&&wps.Enum.wdRDIComments||1);
- }
-
- //删除所有ink墨迹对象
- pDeleteAllInkObj(doc);
-
- doc.TrackRevisions = false; //关闭修订模式
- wps.ribbonUI.InvalidateControl("btnOpenRevision");
-
- return;
- }
-
- /**
- * 作用:删除当前文档的所有墨迹对象
- * @param {*} p_Doc
- */
- function pDeleteAllInkObj(p_Doc) {
- var l_Count = 0;
- var l_IsInkObjExist = true;
- while (l_IsInkObjExist == true && l_Count < 20) {
- l_IsInkObjExist = pDeleteInkObj(p_Doc);
- l_Count++;
- }
- return;
- }
-
- /**
- * 删除墨迹对象
- */
- function pDeleteInkObj(p_Doc) {
- var l_IsInkObjExist = false;
- if (p_Doc) {
- for (var l_Index = 1; l_Index <= p_Doc.Shapes.Count; l_Index++) {
- var l_Item = p_Doc.Shapes.Item(l_Index);
- if (l_Item.Type == 23) {
- l_Item.Delete();
- //只要有一次找到Ink类型,就标识一下
- if (l_IsInkObjExist == false) {
- l_IsInkObjExist = true;
- }
- }
- }
- }
- return l_IsInkObjExist;
- }
-
-
- /**
- *
- */
- function pSaveAnotherDoc(p_Doc) {
- if (!p_Doc) {
- return;
- }
- var l_SourceDocName = p_Doc.Name;
- var l_NewName = "BK_" + l_SourceDocName;
- p_Doc.SaveAs2(l_NewName);
- wps.WpsApplication().Documents.Open();
- }
-
-
- //保存到OA后台服务器
- function OnBtnSaveToServer() {
- // console.log('SaveToServer');
- var l_doc = wps.WpsApplication().ActiveDocument;
- if (!l_doc) {
- alert("空文档不能保存!");
- return;
- }
-
- //非OA文档,不能上传到OA
- if (pCheckIfOADoc() == false) {
- alert("非系统打开的文档,不能直接上传到系统!");
- return;
- }
-
- //如果是OA打开的文档,并且设置了保护的文档,则不能再上传到OA服务器
- if (pISOADocReadOnly(l_doc)) {
- wps.alert("系统设置了保护的文档,不能再提交到系统后台。");
- return;
- }
-
- /**
- * 参数定义:OAAsist.UploadFile(name, path, url, field, "OnSuccess", "OnFail")
- * 上传一个文件到远程服务器。
- * name:为上传后的文件名称;
- * path:是文件绝对路径;
- * url:为上传地址;
- * field:为请求中name的值;
- * 最后两个参数为回调函数名称;
- */
- var l_uploadPath = GetDocParamsValue(l_doc, constStrEnum.uploadPath); // 文件上载路径
- if (l_uploadPath == "") {
- wps.alert("系统未传入文件上载路径,不能执行上传操作!");
- return;
- }
-
- var l_showConfirm = wps.PluginStorage.getItem(constStrEnum.Save2OAShowConfirm)
- if (l_showConfirm) {
- if (!wps.confirm("先保存文档,并开始上传到系统后台,请确认?")) {
- return;
- }
- }
-
- var l_FieldName = GetDocParamsValue(l_doc, constStrEnum.uploadFieldName); //上载到后台的业务方自定义的字段名称
- if (l_FieldName == "") {
- l_FieldName = wps.PluginStorage.getItem(constStrEnum.DefaultUploadFieldName); // 默认为‘file’
- }
-
- var l_UploadName = GetDocParamsValue(l_doc, constStrEnum.uploadFileName); //设置OA传入的文件名称参数
- if (l_UploadName == "") {
- l_UploadName = l_doc.Name; //默认文件名称就是当前文件编辑名称
- }
-
- var l_DocPath = l_doc.FullName; // 文件所在路径
-
- if (pIsOnlineOADoc(l_doc) == false) {
- //对于本地磁盘文件上传OA,先用Save方法保存后,再上传
- //设置用户保存按钮标志,避免出现禁止OA文件保存的干扰信息
- wps.PluginStorage.setItem(constStrEnum.OADocUserSave, EnumDocSaveFlag.OADocSave);
- if (l_doc.Path == "") { //对于不落地文档,文档路径为空
- l_doc.SaveAs2(wps.Env.GetTempPath() + "/" + l_doc.Name, undefined, undefined, undefined, false);
- } else {
- l_doc.Save();
- }
- //执行一次保存方法
- //设置用户保存按钮标志
- wps.PluginStorage.setItem(constStrEnum.OADocUserSave, EnumDocSaveFlag.NoneOADocSave);
- //落地文档,调用UploadFile方法上传到OA后台
- l_DocPath = l_doc.FullName;
- try {
- //调用OA助手的上传方法
- UploadFile(l_UploadName, l_DocPath, l_uploadPath, l_FieldName, OnUploadToServerSuccess, OnUploadToServerFail);
- } catch (err) {
- alert("上传文件失败!请检查系统上传参数及网络环境!");
- }
- } else {
- // 不落地的文档,调用 Document 对象的不落地上传方法
- wps.PluginStorage.setItem(constStrEnum.OADocUserSave, EnumDocSaveFlag.OADocSave);
- try {
- //调用不落地上传方法
- l_doc.SaveAsUrl(l_UploadName, l_uploadPath, l_FieldName, "OnUploadToServerSuccess", "OnUploadToServerFail");
- } catch (err) {
- alert("上传文件失败!请检查系统上传参数及网络环境,重新上传。");
- }
- wps.PluginStorage.setItem(constStrEnum.OADocUserSave, EnumDocSaveFlag.NoneOADocSave);
- }
-
- //获取OA传入的 转其他格式上传属性
- var l_suffix = GetDocParamsValue(l_doc, constStrEnum.suffix);
- if (l_suffix == "") {
- console.log("上传需转换的文件后缀名错误,无法进行转换上传!");
- return;
- }
-
- //判断是否同时上传PDF等格式到OA后台
- var l_uploadWithAppendPath = GetDocParamsValue(l_doc, constStrEnum.uploadWithAppendPath); //标识是否同时上传suffix格式的文档
- if (l_uploadWithAppendPath == "1") {
- //调用转pdf格式函数,强制关闭转换修订痕迹,不弹出用户确认的对话框
- pDoChangeToOtherDocFormat(l_doc, l_suffix, false, false);
- }
- return;
- }
-
-
- /**
- * 作用:套红头
- * 所有与OA系统相关的业务功能,都放在oabuss 子目录下
- */
- function OnInsertRedHeaderClick() {
- var l_Doc = wps.WpsApplication().ActiveDocument;
- if (!l_Doc) {
- return;
- }
- var l_insertFileUrl = GetDocParamsValue(l_Doc, constStrEnum.insertFileUrl); //插入文件的位置
- var l_BkFile = GetDocParamsValue(l_Doc, constStrEnum.bkInsertFile);
- if (l_BkFile == "" || l_insertFileUrl == "") {
- var height = 250;
- var width = 400;
- OnShowDialog("redhead.html", "OA助手", width, height);
- return;
- }
- InsertRedHeadDoc(l_Doc);
- }
-
-
- /**
- * 插入时间
- * params参数结构
- * params:{
- *
- * }
- */
- function OnInsertDateClicked() {
- var l_Doc = wps.WpsApplication().ActiveDocument;
- if (l_Doc) {
- //打开插入日期对话框
- wps.WpsApplication().Dialogs.Item(wps.Enum&&wps.Enum.wdDialogInsertDateTime||165).Show();
- }
- }
-
-
- /**
- * 调用文件上传到OA服务端时,
- * @param {*} resp
- */
- function OnUploadToServerSuccess(resp) {
- console.log("成功上传服务端后的回调:" + resp)
- console.log(resp)
- var l_doc = wps.WpsApplication().ActiveDocument;
- var l_showConfirm = wps.PluginStorage.getItem(constStrEnum.Save2OAShowConfirm);
- if (l_showConfirm) {
- if (wps.confirm("文件上传成功!继续编辑请确认,取消关闭文档。") == false) {
- if (l_doc) {
- console.log("OnUploadToServerSuccess: before Close");
- l_doc.Close(-1); //保存文档后关闭
- console.log("OnUploadToServerSuccess: after Close");
- }
- }
- }
-
- var l_NofityURL = GetDocParamsValue(l_doc, constStrEnum.notifyUrl);
- if (l_NofityURL != "") {
- l_NofityURL = l_NofityURL.replace("{?}", "2"); //约定:参数为2则文档被成功上传
- NotifyToServer(l_NofityURL);
- }
- }
-
- function OnUploadToServerFail(resp) {
- alert("文件上传失败!");
- }
-
- function OnbtnTabClick() {
- alert("OnbtnTabClick");
- }
-
-
-
- //判断当前文档是否是OA文档
- function pCheckIfOADoc() {
- var doc = wps.WpsApplication().ActiveDocument;
- if (!doc)
- return false;
- return CheckIfDocIsOADoc(doc);
- }
-
- //根据传入的doc对象,判断当前文档是否是OA文档
- function CheckIfDocIsOADoc(doc) {
- if (!doc) {
- return false;
- }
-
- var l_isOA = GetDocParamsValue(doc, constStrEnum.isOA);
- if (l_isOA == "") {
- return false
- };
-
- return l_isOA == EnumOAFlag.DocFromOA ? true : false;
- }
-
- //获取文件来源标识
- function pGetDocSourceLabel() {
- return pCheckIfOADoc() ? "OA文件" : "非OA文件";
- }
-
-
-
- /**
- * 作用:设置用户名称标签
- */
- function pSetUserNameLabelControl() {
- var l_doc = wps.WpsApplication().ActiveDocument;
- if (!l_doc) return "";
-
- var l_strUserName = "";
- if (pCheckIfOADoc() == true) { // OA文档,获取OA用户名
- var userName = GetDocParamsValue(l_doc, constStrEnum.userName);
- l_strUserName = userName == "" ? "未设置" : userName;
- } else {
- //非OA传来的文档,则按WPS安装后设置的用户名显示
- l_strUserName = "" + wps.PluginStorage.getItem(constStrEnum.WPSInitUserName);
- }
-
- return l_strUserName;
- }
-
-
- /**
- * 作用:判断是否是不落地文档
- * 参数:doc 文档对象
- * 返回值: 布尔值
- */
- function pIsOnlineOADoc(doc) {
- var l_LandMode = GetDocParamsValue(doc, constStrEnum.OADocLandMode); //获取文档落地模式
- if (l_LandMode == "") { //用户本地打开的文档
- return false;
- }
- return l_LandMode == EnumDocLandMode.DLM_OnlineDoc;
- }
- /**
- * 作用:返回OA文档落地模式标签
- */
- function pGetOADocLabel() {
- var l_Doc = wps.WpsApplication().ActiveDocument;
- if (!l_Doc) {
- return "";
- }
-
- var l_strLabel = ""; //初始化
-
- if (pIsOnlineOADoc(l_Doc) == true) { // 判断是否为不落地文档
- l_strLabel = "文档状态:不落地";
- } else {
- l_strLabel = l_Doc.Path != "" ? "文档状态:落地" : "文档状态:未保存";
- }
-
- //判断OA文档是否是受保护
- if (pISOADocReadOnly(l_Doc) == true) {
- l_strLabel = l_strLabel + "(保护)";
- }
- return l_strLabel;
- }
-
- //返回是否可以点击OA保存按钮的状态
- function OnSetSaveToOAEnable() {
- return pCheckIfOADoc();
- }
-
-
- /**
- * 作用:根据OA传入参数,设置是否显示Ribbob按钮组
- * 参数:CtrlID 是OnGetVisible 传入的Ribbob控件的ID值
- */
- function pShowRibbonGroupByOADocParam(CtrlID) {
- var l_Doc = wps.WpsApplication().ActiveDocument;
- if (!l_Doc) {
- return false; //如果未装入文档,则设置OA助手按钮组不可见
- }
-
- //获取OA传入的按钮组参数组
- var l_grpButtonParams = GetDocParamsValue(l_Doc, constStrEnum.buttonGroups); //disableBtns
- l_grpButtonParams = l_grpButtonParams + "," + GetDocParamsValue(l_Doc, constStrEnum.disableBtns);
-
-
- // 要求OA传入控制自定义按钮显示的参数为字符串 中间用 , 分隔开
- if (typeof(l_grpButtonParams) == "string") {
- var l_arrayGroup = new Array();
- l_arrayGroup = l_grpButtonParams.split(",");
- //console.log(l_grpButtonParams);
-
- // 判断当前按钮是否存在于数组
- if (l_arrayGroup.indexOf(CtrlID) >= 0) {
- return false;
- }
- }
- // 添加OA菜单判断
- if (CtrlID == "WPSWorkExtTab") {
- if(wps.WpsApplication().ActiveDocument){
- let l_value=GetDocParamsValue(wps.WpsApplication().ActiveDocument,"isOA");
- return l_value?true:false;
- }
- var l_value = wps.PluginStorage.getItem(constStrEnum.ShowOATabDocActive);
- wps.PluginStorage.setItem(constStrEnum.ShowOATabDocActive, false); //初始化临时状态变量
- console.log("菜单:" + l_value);
- return l_value;
- }
- return true;
- }
-
- /**
- * 根据传入Document对象,获取OA传入的参数的某个Key值的Value
- * @param {*} Doc
- * @param {*} Key
- * 返回值:返回指定 Key的 Value
- */
- function GetDocParamsValue(Doc, Key) {
- if (!Doc) {
- return "";
- }
-
- var l_Params = wps.PluginStorage.getItem(Doc.DocID);
- 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;
- }
-
- /**
- * 获取对象中指定属性的值
- * @param {*} params
- * @param {*} Key
- */
- function GetParamsValue(Params, Key) {
- if (typeof(Params) == "undefined") {
- return "";
- }
-
- var l_rtnValue = Params[Key];
- return l_rtnValue;
- }
-
-
-
- /**
- * 作用:插入二维码图片
- */
- function OnInsertQRCode() {
- OnShowDialog("QRCode.html", "插入二维码", 400, 400);
- }
-
-
- /**
- * 打开本地文档并插入到当前文档中指定位置(导入文档)
- */
- function OnOpenLocalFile() {
- OpenLocalFile();
- }
- /**
- * 插入水印
- */
- function DoInsertWaterToDoc(){
- var app, shapeRange;
- try {
- // app = wpsFrame.Application;
- var app=wps.WpsApplication();
- var doc = app.ActiveDocument;
- var selection = doc.ActiveWindow.Selection;
- var pageCount = app.ActiveWindow.ActivePane.Pages.Count;
- for(var i=1;i<=pageCount;i++){
- selection.GoTo(1, 1, i);
- app.ActiveWindow.ActivePane.View.SeekView=9;
- app.ActiveDocument.Sections.Item(1).Headers.Item(1).Shapes.AddTextEffect(0, "公司绝密", "华文新魏", 36, false, false, 0, 0).Select();
- shapeRange = app.Selection.ShapeRange;
- shapeRange.TextEffect.NormalizedHeight = false;
- shapeRange.Line.Visible = false;
- shapeRange.Fill.Visible = true;
- shapeRange.Fill.Solid();
- shapeRange.Fill.ForeColor.RGB = 12632256; /* WdColor枚举 wdColorGray25 代表颜色值 */
- shapeRange.Fill.Transparency = 0.5; /* 填充透明度,值为0.0~1.0 */
- shapeRange.LockAspectRatio = true;
- shapeRange.Height = 4.58 * 28.346;
- shapeRange.Width = 28.07 * 28.346;
- shapeRange.Rotation = 315; /* 图形按照Z轴旋转度数,正值为顺时针旋转,负值为逆时针旋转 */
- shapeRange.WrapFormat.AllowOverlap = true;
- shapeRange.WrapFormat.Side = 3; /* WdWrapSideType枚举 wdWrapLargest 形状距离页边距最远的一侧 */
- shapeRange.WrapFormat.Type = 3;
- shapeRange.RelativeHorizontalPosition = 0;
- shapeRange.RelativeVerticalPosition = 0;
- shapeRange.Left = '-999995';
- shapeRange.Top = '-999995';
-
- } /* WdShapePosition枚举 wdShapeCenter 形状的位置在中央 */
- selection.GoTo(1, 1, 1);
- app.ActiveWindow.ActivePane.View.SeekView=0;
- } catch (error) {
- alert(error.message);
- }
- }
-
- /**
- * 插入电子印章的功能
- */
- function OnInsertSeal() {
- OnShowDialog("selectSeal.html", "印章", 730, 500);
- }
-
- /**
- * 导入模板到文档中
- */
- function OnImportTemplate() {
- OnShowDialog("importTemplate.html", "导入模板", 560, 400);
- }
-
-
- //自定义菜单按钮的点击执行事件
- function OnAction(control) {
- var eleId;
- if (typeof control == "object" && arguments.length == 1) { //针对Ribbon的按钮的
- eleId = control.Id;
- } else if (typeof control == "undefined" && arguments.length > 1) { //针对idMso的
- eleId = arguments[1].Id;
- console.log(eleId)
- } else if (typeof control == "boolean" && arguments.length > 1) { //针对checkbox的
- eleId = arguments[1].Id;
- } else if (typeof control == "number" && arguments.length > 1) { //针对combox的
- eleId = arguments[2].Id;
- }
- switch (eleId) {
- case "btnOpenWPSYUN": //打开WPS云文档入口
- pDoOpenWPSCloundDoc();
- break;
- case "btnOpenLocalWPSYUN": //打开本地文档并插入到文档中
- OnOpenLocalFile();
- break;
- case "WPSWorkExtTab":
- OnbtnTabClick();
- break;
- case "btnSaveToServer": //保存到OA服务器
- wps.PluginStorage.setItem(constStrEnum.Save2OAShowConfirm, true)
- OnBtnSaveToServer();
- break;
- case "btnSaveAsFile": //另存为本地文件
- OnBtnSaveAsLocalFile();
- break;
- case "btnChangeToPDF": //转PDF文档并上传
- OnDoChangeToOtherDocFormat(".pdf");
- break;
- case "btnChangeToUOT": //转UOF文档并上传
- OnDoChangeToOtherDocFormat(".uof");
- break;
- case "btnChangeToOFD": //转OFD文档并上传
- OnDoChangeToOtherDocFormat(".ofd");
- break;
- //------------------------------------
- case "btnInsertRedHeader": //插入红头
- OnInsertRedHeaderClick(); //套红头功能
- break;
- case "btnUploadOABackup": //文件备份
- OnUploadOABackupClicked();
- break;
- case "btnInsertSeal": //插入印章
- OnInsertSeal();
- break;
- //------------------------------------
- //修订按钮组
- case "btnClearRevDoc": //执行 清稿 按钮
- OnBtnClearRevDoc();
- break;
- case "btnOpenRevision": //打开修订
- {
- let bFlag = wps.PluginStorage.getItem(constStrEnum.RevisionEnableFlag)
- wps.PluginStorage.setItem(constStrEnum.RevisionEnableFlag, !bFlag)
- //通知wps刷新以下几个按钮的状态
- wps.ribbonUI.InvalidateControl("btnOpenRevision")
- wps.ribbonUI.InvalidateControl("btnCloseRevision")
- OnOpenRevisions(); //
- break;
- }
- case "btnCloseRevision": //关闭修订
- {
- let bFlag = wps.PluginStorage.getItem(constStrEnum.RevisionEnableFlag)
- wps.PluginStorage.setItem(constStrEnum.RevisionEnableFlag, !bFlag)
- //通知wps刷新以下几个按钮的状态
- wps.ribbonUI.InvalidateControl("btnOpenRevision")
- wps.ribbonUI.InvalidateControl("btnCloseRevision")
- OnCloseRevisions();
- break;
- }
- case "btnShowRevision":
- break;
- case "btnAcceptAllRevisions": //接受所有修订功能
- OnAcceptAllRevisions();
- break;
- case "btnRejectAllRevisions": //拒绝修订
- OnRejectAllRevisions();
- break;
- //------------------------------------
- case "btnInsertPic": //插入图片
- DoInsertPicToDoc();
- break;
- case "btnInsertWater":
- DoInsertWaterToDoc()
- case "btnInsertDate": //插入日期
- OnInsertDateClicked();
- break;
- case "btnOpenScan": //打开扫描仪
- OnOpenScanBtnClicked();
- break;
- case "btnPageSetup": //打开页面设置
- OnPageSetupClicked();
- break;
- case "btnQRCode": //插入二维码
- OnInsertQRCode(); //
- break;
- case "btnPrintDOC": // 打开打印设置
- OnPrintDocBtnClicked();
- break;
- case "lblDocSourceValue": //OA公文提示
- OnOADocInfo();
- break;
- case "btnUserName": //点击用户
- OnUserNameSetClick();
- break;
- case "btnInsertBookmark": //插入书签
- OnInsertBookmarkToDoc();
- break;
- case "btnImportTemplate": //导入模板
- OnImportTemplate();
- break;
- case "FileSaveAsMenu": //通过idMso进行「另存为」功能的自定义
- case "FileSaveAs":
- {
- if (pCheckIfOADoc()) { //文档来源是业务系统的,做自定义
- alert("这是OA文档,将Ctrl+S动作做了重定义,可以调用OA的保存文件流到业务系统的接口。")
- OnBtnSaveToServer();
- } else { //本地的文档,期望不做自定义,通过转调idMso的方法实现
- wps.WpsApplication().CommandBars.ExecuteMso("FileSaveAsWordDocx");
- //此处一定不能去调用与重写idMso相同的ID,否则就是个无线递归了,即在这个场景下不可调用FileSaveAs和FileSaveAsMenu这两个方法
- }
- break;
- }
- case "FileSave": //通过idMso进行「保存」功能的自定义
- {
- if (pCheckIfOADoc()) { //文档来源是业务系统的,做自定义
- alert("这是OA文档,将Ctrl+S动作做了重定义,可以调用OA的保存文件流到业务系统的接口。")
- OnBtnSaveToServer();
- } else { //本地的文档,期望不做自定义,通过转调idMso的方法实现
- // wps.WpsApplication().CommandBars.ExecuteMso("FileSave");
- wps.WpsApplication().CommandBars.ExecuteMso("SaveAll");
- //此处一定不能去调用与重写idMso相同的ID,否则就是个无线递归了,即在这个场景下不可调用FileSaveAs和FileSaveAsMenu这两个方法
- }
- break;
- }
- case "FileNew":
- case "FileNewMenu":
- case "WindowNew":
- case "FileNewBlankDocument":
- {
- if (pCheckIfOADoc()) { //文档来源是业务系统的,做自定义
- alert("这是OA文档,将Ctrl+N动作做了禁用")
- }
- }
- break
- case "ShowAlert_ContextMenuText":
- {
- let selectText = wps.WpsApplication().Selection.Text;
- alert("您选择的内容是:\n" + selectText);
- break;
- }
- case "btnSendMessage1":
- {
- /**
- * 内部封装了主动响应前端发送的请求的方法
- */
- //参数自定义,这里只是负责传递参数,在WpsInvoke.RegWebNotify方法的回调函数中去做接收,自行解析参数
- let params={
- type:'executeFunc1',
- message:"当前时间为:" + currentTime()
- }
- /**
- * WebNotify:
- * 参数1:发送给业务系统的消息
- * 参数2:是否将消息加入队列,是否防止丢失消息,都需要设置为true
- */
- wps.OAAssist.WebNotify(JSON.stringify(params),true); //如果想传一个对象,则使用JSON.stringify方法转成对象字符串。
- break;
- }
- case "btnSendMessage2":
- {
- /**
- * 内部封装了主动响应前端发送的请求的方法
- */
- let msgInfo =
- {
- id: 1,
- name: 'kingsoft',
- since: "1988"
- }
- //参数自定义,这里只是负责传递参数,在WpsInvoke.RegWebNotify方法的回调函数中去做接收,自行解析参数
-
- let params={
- type:'executeFunc2',
- message:"当前时间为:" + currentTime(),
- msgInfoStr: JSON.stringify(msgInfo)
- }
- /**
- * WebNotify:
- * 参数1:发送给业务系统的消息
- * 参数2:是否将消息加入队列,是否防止丢失消息,都需要设置为true
- */
- wps.OAAssist.WebNotify(JSON.stringify(params),true); //如果想传一个对象,则使用JSON.stringify方法转成对象字符串。
- break;
- }
- case "btnAddWebShape":
- {
- let l_doc = wps.WpsApplication().ActiveDocument;
- l_doc.Shapes.AddWebShape("https://www.wps.cn");
- break;
- }
- default:
- break;
- }
- return true;
- }
-
- /**
- * 作用:重新设置当前用户名称
- */
- function OnUserNameSetClick() {
- var l_UserPageUrl = "setUserName.html"
- OnShowDialog(l_UserPageUrl, "OA助手用户名称设置", 500, 300);
- }
- /**
- * 作用:展示当前文档,被OA助手打开后的,操作记录及相关附加信息
- */
- function OnOADocInfo() {
- return;
- }
-
- /**
- * 作用:自定义菜单按钮的图标
- */
- function GetImage(control) {
- var eleId;
- if (typeof control == "object" && arguments.length == 1) { //针对Ribbon的按钮的
- eleId = control.Id;
- } else if (typeof control == "undefined" && arguments.length > 1) { //针对idMso的
- eleId = arguments[1].Id;
- } else if (typeof control == "boolean" && arguments.length > 1) { //针对checkbox的
- eleId = arguments[1].Id;
- } else if (typeof control == "number" && arguments.length > 1) { //针对combox的
- eleId = arguments[2].Id;
- }
- switch (eleId) {
- case "btnOpenWPSYUN":
- return "./icon/w_WPSCloud.png"; //打开WPS云文档
- case "btnOpenLocalWPSYUN": //导入文件
- return "./icon/w_ImportDoc.png"
- case "btnSaveToServer": //保存到OA后台服务端
- return "./icon/w_Save.png";
- case "btnSaveAsFile": //另存为本地文件
- return "./icon/w_SaveAs.png";
- case "btnChangeToPDF": //输出为PDF格式
- return "./icon/w_PDF.png";
- case "btnChangeToUOT": //
- return "./icon/w_DocUOF.png";
- case "btnChangeToOFD": //转OFD上传
- return "./icon/w_DocOFD.png"; //
- case "btnInsertRedHeader": //套红头
- return "./icon/w_GovDoc.png";
- case "btnInsertSeal": //印章
- return "./icon/c_seal.png";
- case "btnClearRevDoc": //清稿
- return "./icon/w_DocClear.png"
- case "btnUploadOABackup": //备份正文
- return "./icon/w_BackDoc.png";
- case "btnOpenRevision": //打开 修订
- case "btnShowRevision": //
- return "./icon/w_OpenRev.png";
- case "btnCloseRevision": //关闭修订
- return "./icon/w_CloseRev.png";
- case "btnAcceptAllRevisions": // 接受修订
- return "./icon/w_AcceptRev.png";
- case "btnRejectAllRevisions": // 拒绝修订
- return "./icon/w_RejectRev.png";
- case "btnSaveAsFile":
- return "";
- case "btnInsertWater":
- case "btnInsertPic": //插入图片
- return "./icon/w_InsPictures.png";
- case "btnOpenScan": //打开扫描仪
- return "./icon/w_Scanner16.png"; //
- case "btnPageSetup": //打开页面设置
- return "./icon/w_PageGear.png";
- case "btnInsertDate": //插入日期
- return "./icon/w_InsDate.png";
- case "btnQRCode": //二维码
- return "./icon/w_DocQr.png";
- case "btnPrintDOC": // 打印设置
- return "./icon/c_printDoc.png";
- case "btnInsertBookmark":
- return "./icon/c_bookmark.png";
- case "btnImportTemplate":
- return "./icon/w_ImportDoc.png";
- case "btnSendMessage1":
- return "./icon/3.svg"
- case "btnSendMessage2":
- return "./icon/3.svg"
- default:
- ;
- }
- return "./icon/c_default.png";
- }
-
- function pGetOpenRevisionButtonLabel() {
- return "打开修订";
- }
-
- function pGetShowRevisionButtonLabel() {
- return "显示修订";
- }
-
-
- //xml文件中自定义按钮的文字处理函数
- function OnGetLabel(control) {
- var eleId;
- if (typeof control == "object" && arguments.length == 1) { //针对Ribbon的按钮的
- eleId = control.Id;
- } else if (typeof control == "undefined" && arguments.length > 1) { //针对idMso的
- eleId = arguments[1].Id;
- } else if (typeof control == "boolean" && arguments.length > 1) { //针对checkbox的
- eleId = arguments[1].Id;
- } else if (typeof control == "number" && arguments.length > 1) { //针对combox的
- eleId = arguments[2].Id;
- }
- switch (eleId) {
- case "btnOpenWPSYUN": //打开WPS云文档
- return "WPS云文档";
- case "btnOpenLocalWPSYUN": //打开本地云文档目录
- return "导入文档";
- case "btnSaveAsFile":
- return "另存为本地";
- case "btnChangeToPDF": //转PDF并上传
- return "转PDF上传";
- case "btnChangeToUOT": //转UOF并上传
- return "转UOF上传";
- case "btnChangeToOFD": //转OFD格式并上传
- return "转OFD上传";
- case "lblDocSourceValue": //文件来源标签:
- return pGetDocSourceLabel();
- case "lblUserName": //用户名:lableControl 控件
- return "编辑人:"; //pSetUserNameLabelControl();
- case "btnUserName":
- return pSetUserNameLabelControl();
- //======================================================
- case "btnInsertRedHeader": //套红头
- return "套红头";
- case "btnInsertSeal": //插入印章
- return "印章";
- case "btnUploadOABackup": //文件备份
- return "文件备份";
- //======================================================
- case "btnOpenRevision": //打开修订按钮
- return pGetOpenRevisionButtonLabel();
- case "btnShowRevision": //显示修订按钮
- return pGetShowRevisionButtonLabel();
- case "btnCloseRevision": //关闭修订按钮
- return "关闭修订";
- case "btnClearRevDoc": //显示 清稿
- return "清稿";
- case "btnAcceptAllRevisions": //显示 接受修订
- return "接受修订";
- case "btnRejectAllRevisions": //显示 拒绝修订
- return "拒绝修订";
- case "lblDocLandMode": //显示 文档落地方式 :不落地还是本地,包括是否受保护
- return pGetOADocLabel();
- //---------------------------------------------
- case "btnInsertPic": //插入图片
- return "插图片";
- case "btnInsertDate": //插入日期
- return "插日期";
- case "btnOpenScan": //打开扫描仪
- return "扫描仪";
- case "btnInsertWater":
- return "插入水印"
- case "btnPageSetup": //打开页面设置
- return "页面设置";
- case "btnPrintDOC": //打开页面设置
- return "打印设置";
- case "btnInsertBookmark":
- return "导入书签";
- case "btnImportTemplate":
- return "导入模板";
- default:
- ;
- }
- return "";
- }
-
- /**
- * 作用:处理Ribbon按钮的是否可显示
- * @param {*} control :Ribbon 的按钮控件
- */
- function OnGetVisible(control) {
- var eleId;
- if (typeof control == "object" && arguments.length == 1) { //针对Ribbon的按钮的
- eleId = control.Id;
- } else if (typeof control == "undefined" && arguments.length > 1) { //针对idMso的
- eleId = arguments[1].Id;
- } else if (typeof control == "boolean" && arguments.length > 1) { //针对checkbox的
- eleId = arguments[1].Id;
- } else if (typeof control == "number" && arguments.length > 1) { //针对combox的
- eleId = arguments[2].Id;
- }
- var l_value = false;
-
- //关闭一些测试中的功能
- switch (eleId) {
- case "lblDocLandMode": //文档落地标签
- return true;
- case "btnOpenScan":
- return false;
- case "btnAddWebShape":
- {
- if (wps.WpsApplication().Build.toString().indexOf("11.1") != -1){
- return true;
- }
- return false;
- }
- break;
- default:
-
- }
-
- //按照 OA文档传递过来的属性进行判断
- l_value = pShowRibbonGroupByOADocParam(eleId);
- return l_value;
- }
-
- /**
- * 作用:处理Ribbon按钮的是否可用
- * @param {*} control :Ribbon 的按钮控件
- */
- function OnGetEnabled(control) {
- var eleId;
- if (typeof control == "object" && arguments.length == 1) { //针对Ribbon的按钮的
- eleId = control.Id;
- } else if (typeof control == "undefined" && arguments.length > 1) { //针对idMso的
- eleId = arguments[1].Id;
- } else if (typeof control == "boolean" && arguments.length > 1) { //针对checkbox的
- eleId = arguments[1].Id;
- } else if (typeof control == "number" && arguments.length > 1) { //针对combox的
- eleId = arguments[2].Id;
- }
- switch (eleId) {
- case "btnSaveToServer": //保存到OA服务器的相关按钮。判断,如果非OA文件,禁止点击
- case "btnChangeToPDF": //保存到PDF格式再上传
- case "btnChangeToUOT": //保存到UOT格式再上传
- case "btnChangeToOFD": //保存到OFD格式再上传
- case "SaveAll": //保存所有文档
- //以下四个idMso的控制是关于文档新建的
- case "FileNew":
- case "FileNewMenu":
- case "WindowNew":
- case "FileNewBlankDocument":
- return OnSetSaveToOAEnable();
- case "btnCloseRevision":
- {
- let bFlag = wps.PluginStorage.getItem(constStrEnum.RevisionEnableFlag)
- return bFlag
- }
- case "btnOpenRevision":
- {
- let bFlag = wps.PluginStorage.getItem(constStrEnum.RevisionEnableFlag)
- return !bFlag
- }
- case "PictureInsert":
- return false;
- case "TabInsert"://WPS自身tab:插入
- case "TabDeveloper": //WPS自身tab:开发工具
- // case "TabPageLayoutWord": //WPS自身tab:页面布局
- // case "TabReferences": //WPS自身tab:引用
- // case "TabReviewWord": //WPS自身tab:审阅
- // case "TabView": //WPS自身tab:视图
- {
- if(pCheckIfOADoc()){
- return false;//如果是OA打开的文档,把这个几个tab不可用/隐藏
- }else{
- return true;
- }
- }
- default:
- ;
- }
- return true;
- }
|