{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-vue/src/components/report.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/src/components/report.vue","mtime":1725957645729},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/node_modules/babel-loader/lib/index.js","mtime":315532800000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/node_modules/vue-loader/lib/index.js","mtime":1655715099000}],"contextDependencies":[],"result":["\nimport form_searchform from \"@/components/form_searchform.vue\";\nexport default {\n props: [\"openParams\"],\n components: {\n form_searchform,\n },\n watch: {},\n created() {\n this.getReport();\n },\n mounted() {\n this.getScollerHeight();\n },\n\n data() {\n return {\n currentUrl: \"\",\n dialogVisible: false,\n iframeHeight: \"\",\n formData: \"\",\n isOpenTemplate: false,\n isShowBtn: false,\n chartType: \"report\",\n reportHtml: \"\",\n };\n },\n methods: {\n handleClose() {\n this.dialogVisible = false;\n },\n\n onSearch(data) {\n this.$api.searchReports(data.viewId, \"\", data, {\n onSucess: (res) => {\n let urls = res.data;\n this.currentUrl = \"\";\n this.reportHtml = \"\";\n setTimeout(() => {\n this.currentUrl = obpmConfig.obpmFilePath + urls;\n }, 300);\n },\n });\n },\n\n showBtn(val) {\n this.isShowBtn = val;\n },\n\n openSearchTemplate() {\n this.isOpenTemplate = !this.isOpenTemplate;\n },\n\n printPage() {\n let newWindow = window.open(\"_blank\"); // 打开新窗口\n let codestr = document.getElementById(\"print\").innerHTML; // 获取需要生成pdf页面的div代码\n newWindow.document.write(codestr); // 向文档写入HTML表达式或者JavaScript代码\n newWindow.document.close(); // 关闭document的输出流, 显示选定的数据\n setTimeout(() => {\n newWindow.print();\n }, 1000);\n },\n\n print() {\n this.dialogVisible = true;\n setTimeout(() => {\n let id = \"print_\" + this.openParams.actionContent;\n this.setImgUrl(id);\n }, 500);\n },\n\n setImgUrl(id) {\n let imgLists = document.getElementById(id).getElementsByTagName(\"img\");\n console.log(\"imgLists-->\", imgLists);\n let src = \"\";\n for (let i = 0; i < imgLists.length; i++) {\n let imgName = imgLists[i].src.split(\"/\");\n src =\n obpmConfig.obpmFilePath +\n \"/uploads/reports/\" +\n imgName[imgName.length - 2] +\n \"/\" +\n imgName[imgName.length - 1];\n imgLists[i].src = src;\n }\n },\n\n setParams(op) {\n let params = \"\";\n for (let key in op) {\n //openParams参数必定携带这几个参数,不需要做参数传到后台\n if (\n key != \"actionContent\" &&\n key != \"active\" &&\n key != \"appId\" &&\n key != \"linkType\" &&\n key != \"name\" &&\n key != \"title\" &&\n key != \"_select\"\n ) {\n params = key + \"=\" + op[key] + \"&\";\n }\n }\n return params;\n },\n\n exportPdf() {\n let op = this.openParams;\n let params = this.setParams(op);\n\n this.$api.exportReportPdf(op.actionContent, params, {\n onSucess: (response) => {\n let fileName = \"\";\n let type = response.headers[\"content-type\"];\n if (response.headers[\"content-disposition\"]) {\n // fileName = decodeURIComponent(response.headers['content-disposition'].split(\"=\")[1]);\n let suffix = fileName.split(\".\")[1];\n // fileName = name + \".\" + suffix;\n fileName = op.name + decodeURIComponent(\".pdf\");\n } else {\n fileName = $t(\"report.download\");\n }\n this.download(response, type, fileName);\n },\n });\n },\n\n exportExcel() {\n let op = this.openParams;\n let params = this.setParams(op);\n this.$api.exportReportExcel(op.actionContent, params, {\n onSucess: (response) => {\n let fileName = \"\";\n let type = response.headers[\"content-type\"];\n if (response.headers[\"content-disposition\"]) {\n // fileName = decodeURIComponent(response.headers['content-disposition'].split(\"=\")[1]);\n let suffix = fileName.split(\".\")[1];\n // fileName = name + \".\" + suffix;\n fileName = op.name + decodeURIComponent(\".xls\"); //$t('report.datasource_down') + \".xls\";\n } else {\n fileName = $t(\"report.download\");\n }\n this.download(response, type, fileName);\n },\n });\n },\n\n download(res, type, filename) {\n const blob = new Blob([res.data], {\n // 如果后端没返回下载文件类型,则需要手动设置:type: 'application/pdf;chartset=UTF-8' 表示下载文档为pdf,如果是word则设置为msword,excel为excel\n type: type,\n });\n const a = document.createElement(\"a\");\n const herf = window.URL.createObjectURL(blob);\n // 下载链接\n a.href = herf;\n // 下载文件名,如果后端没有返回,可以自己写a.download = '文件.pdf'\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(herf);\n },\n\n getReport() {\n let op = this.openParams;\n let id = op.actionContent;\n let params = {\n appId: op.appId ? op.appId : \"\",\n reportId: id,\n orderId: op.orderId ? op.orderId : \"\",\n docId: op.docId ? op.docId : \"\",\n };\n this.$api.getCustomreports(id, params, {\n onSucess: (response) => {\n let urls = response.data;\n if (urls.indexOf(\"未知系统异常\") > -1) {\n alert(urls);\n }\n this.currentUrl = obpmConfig.obpmFilePath + urls;\n this.$api.getCustomreportsHtml(urls, {\n onSucess: (res) => {\n this.reportHtml = res.data;\n let domId = \"report_\" + id;\n setTimeout(() => {\n this.setImgUrl(domId);\n }, 1000);\n },\n });\n },\n });\n },\n\n /**\n * 动态计算页面iframe高度\n */\n getScollerHeight() {\n setTimeout(() => {\n let clientHeight =\n document.documentElement.clientHeight || document.body.clientHeight;\n //60 头部, 32 面包屑, 41 第一层页签, 40 第二层页签, 50 列表标题, 71 查询, 20 父组件外边距, 40分页, 16 外边距\n //这个组件在父组件dialog中高度给的85%,54 弹窗标题 30 弹窗底部padding 50 第一季页签 20机动距离\n this.iframeHeight = clientHeight - 60 - 32 - 41 - 50 - 20 - 16;\n }, 100);\n },\n },\n};\n",null]}