diff --git a/src/utils/exportUtils.ts b/src/utils/exportUtils.ts index 3fe9a62..fc868f6 100644 --- a/src/utils/exportUtils.ts +++ b/src/utils/exportUtils.ts @@ -4,6 +4,9 @@ * @param fileName 导出文件名 */ export function exportFile(blob: Blob, fileName: string) { + // console.log(blob) + console.log(fileName) + if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) { (navigator as any).msSaveBlob(blob, fileName) } @@ -18,3 +21,38 @@ window.URL.revokeObjectURL(href) // 释放blob对象 } } +// 打印文件流 +export function printContent(content: any) { + var tagElements = document.getElementsByTagName('iframe') + for (var m = 0; m < tagElements.length; m++) { + if (tagElements[m].className === 'tmp-pdf') { + tagElements[m].parentNode!.removeChild(tagElements[m])// 去除元素 + } + } + const iframe = document.createElement('iframe') + iframe.className = 'tmp-pdf' + iframe.style.display = 'none' + iframe.src = URL.createObjectURL(content) + document.body.appendChild(iframe) + setTimeout(() => { + iframe.contentWindow!.print() + URL.revokeObjectURL(content) + }, 100) +} +// 打印文件流 +// export function printContent(res) { +// const url = URL.createObjectURL(res) // 后端返回的文本流 +// var iframe = document.createElement('iframe') +// iframe.setAttribute('id', 'printPDF') +// iframe.setAttribute('name', 'printPDF') // 不可少 +// iframe.style.frameborder = 'no' +// iframe.style.display = 'none' +// iframe.style.pageBreakBefore = 'always' // 打印保留分页 +// iframe.src = url +// document.body.appendChild(iframe) +// setTimeout(() => { +// document.getElementById('printPDF').contentWindow.print() +// }, 1000) +// window.URL.revokeObjectURL(iframe.src) +// } + diff --git a/src/utils/exportUtils.ts b/src/utils/exportUtils.ts index 3fe9a62..fc868f6 100644 --- a/src/utils/exportUtils.ts +++ b/src/utils/exportUtils.ts @@ -4,6 +4,9 @@ * @param fileName 导出文件名 */ export function exportFile(blob: Blob, fileName: string) { + // console.log(blob) + console.log(fileName) + if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) { (navigator as any).msSaveBlob(blob, fileName) } @@ -18,3 +21,38 @@ window.URL.revokeObjectURL(href) // 释放blob对象 } } +// 打印文件流 +export function printContent(content: any) { + var tagElements = document.getElementsByTagName('iframe') + for (var m = 0; m < tagElements.length; m++) { + if (tagElements[m].className === 'tmp-pdf') { + tagElements[m].parentNode!.removeChild(tagElements[m])// 去除元素 + } + } + const iframe = document.createElement('iframe') + iframe.className = 'tmp-pdf' + iframe.style.display = 'none' + iframe.src = URL.createObjectURL(content) + document.body.appendChild(iframe) + setTimeout(() => { + iframe.contentWindow!.print() + URL.revokeObjectURL(content) + }, 100) +} +// 打印文件流 +// export function printContent(res) { +// const url = URL.createObjectURL(res) // 后端返回的文本流 +// var iframe = document.createElement('iframe') +// iframe.setAttribute('id', 'printPDF') +// iframe.setAttribute('name', 'printPDF') // 不可少 +// iframe.style.frameborder = 'no' +// iframe.style.display = 'none' +// iframe.style.pageBreakBefore = 'always' // 打印保留分页 +// iframe.src = url +// document.body.appendChild(iframe) +// setTimeout(() => { +// document.getElementById('printPDF').contentWindow.print() +// }, 1000) +// window.URL.revokeObjectURL(iframe.src) +// } + diff --git a/src/views/business/schedule/order/orderEdit.vue b/src/views/business/schedule/order/orderEdit.vue index 251f768..0e64b25 100644 --- a/src/views/business/schedule/order/orderEdit.vue +++ b/src/views/business/schedule/order/orderEdit.vue @@ -15,7 +15,8 @@ import { addOrder, getOrderDetail, getStream, updateOrder } from '@/api/business/schedule/order' import selectStaffList from '@/views/business/fieldTest/components/selectStaffList.vue' import { printPdf } from '@/utils/printUtils' - +import { exportFile, printContent } from '@/utils/exportUtils' +import { downloadFile } from '@/utils/download' const pageType = ref('add') // 页面类型: add, edit, detail const infoId = ref('') // id const isReceived = ref(false) // 样品状态是否已接收 @@ -475,9 +476,13 @@ }) getStream({ id: infoId.value }).then((res) => { loading.close() - const pdfStream = new Blob([res.data]) - const blobUrl = URL.createObjectURL(pdfStream) - printPdf(blobUrl) + // const pdfStream = new Blob([res.data]) + // const blobUrl = URL.createObjectURL(pdfStream) + // printPdf(blobUrl) + // printPdf(URL.createObjectURL(res.data)) + downloadFile(res.data, `${dataForm.value.orderCode}.doc`) + }).catch(() => { + loading.close() }) }