/** * 在这个js中,集中处理来自OA的传入参数 * */ /** * web页面调用WPS的方法入口 * * info参数结构 * info:[ * { * '方法名':'方法参数',需要执行的方法 * }, * ... * ] * @param {*} info */ function dispatcher(info) { var funcs = info.funcs if (info.dotime && funcs.length) loginfo('接受到请求,请求时间' + GetCNTimeString(new Date(info.dotime))) // if (funcs.length > 0) wps.Application.Visible = true //执行web页面传递的方法 setTimeout(function () { for (var index = 0; index < funcs.length; index++) { var func = funcs[index] for (var key in func) { var params = func[key] initAuthParams(params) if (!IsSilentMode()) wps.Application.Visible = true toggleBeforeOAfterLoading('处理中', true, true) loginfo('系统操作:' + key) switch (key) { case 'OpenDoc': case 'QingGao': case 'UpdateRegion': case 'PrintDocument': case 'DOCConvertToPDF': case 'DOCConvertToOFD': case 'SaveFileToLocal': OpenFile(params) break case 'TaoDa': { var tmp = params.fileName params.fileName = params.ModelUrl params.ModelUrl = tmp } case 'GaiZhang': let fileName = GetFileNameByParams(params) if (params.action == 'taoda' && !!params.oldDocName) fileName = params.oldDocName //下载红头文件盖章文件 DownloadFile(params.ModelUrl, '模板', true) .then((filepath) => { wps.PluginStorage.setItem('ModelUrl', filepath) wps.PluginStorage.setItem( 'ContentFieldName', params.ContentFieldName ) OpenFile(params) }) .catch((code) => { OAWebNotice(fileName) ShowMessage(`下载文件[模板]失败!错误代码:H${code}`, 'error', 5) }) break case 'ExitWPS': ExitWPS(params) break default: break } } } }, 100) //兼容处理心跳 Heart && Heart.OASystemOnLine() //Date.now() + 10e3); return { message: 'ok', app: wps.WpsApplication().Name } } /** * 获取活动文档的状态 */ function GetDocStatus() { let l_doc = wps.WpsApplication().ActiveDocument if (l_doc && pCheckIfOADoc()) { //此方法还可根据需要进行扩展 return { message: 'GetDocStatus', docstatus: { words: l_doc.Words.Count, saved: l_doc.Saved, pages: l_doc.ActiveWindow.Panes.Item(1).Pages.Count, }, } } } /** * 关闭WPS活动文档并退出WPS进程 */ function ExitWPS() { let l_doc = wps.WpsApplication().ActiveDocument if (l_doc && pCheckIfOADoc()) { //此方法还可根据需要进行扩展 l_doc.Close() } if ( // TODO 为替换showConfirm 因为未使用此函数 wps.confirm( '要关闭WPS软件,请确认文档都已保存。\n点击确定后关闭WPS,点击取消继续编辑。' ) ) { wps.WpsApplication().Quit() } }