| | |
| | | //let docx = require("docx-preview"); |
| | | import http from '../../packages/utils/request'; |
| | | import Vue from 'vue'; |
| | | import LuckyExcel from 'luckyexcel'; |
| | | |
| | | |
| | | window.openPreviewDialog = async function (fileId, suffixName, previewContainer, pageMarkerfun) { |
| | | try { |
| | | let formData = {fileId: fileId, suffixName: suffixName} |
| | | console.log(previewContainer) |
| | | Vue.prototype.$EventBus.$emit(pageMarkerfun) |
| | | if (suffixName == 'pdf') { |
| | | if (suffixName == 'pdf' || suffixName == 'jpg' || suffixName == 'jpeg' || suffixName == 'png') { |
| | | if (previewContainer != null) { |
| | | previewContainer.src = `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${fileId}`; |
| | | previewContainer.src = `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${fileId}` |
| | | } else { |
| | | alert("iframe未加载") |
| | | alert("渲染区域未加载") |
| | | } |
| | | } else if (suffixName == 'doc' || suffixName == 'docx') { |
| | | const response = await http.get('/sys/oss/content2', {params: formData, responseType: 'blob'}); |
| | | console.log(response) |
| | | response.success = true; |
| | | const arrayBuffer = await response.arrayBuffer(); |
| | | setTimeout(async () => { |
| | | if (previewContainer != null) { |
| | | await renderAsync(arrayBuffer, previewContainer); |
| | | } else { |
| | | alert("渲染区域未加载") |
| | | } |
| | | }, 100); |
| | | } else if (suffixName == 'xls' || suffixName == 'xlsx') { |
| | | const response = await http.get('/sys/oss/content2', {params: formData, responseType: 'blob'}); |
| | | const arrayBuffer = await response.arrayBuffer(); |
| | | // 使用 LuckyExcel 转换 Excel 文件数据 |
| | | LuckyExcel.transformExcelToLucky(arrayBuffer, function (exportJson, luckysheetfile) { |
| | | try { |
| | | // 使用 Luckysheet 渲染表格 |
| | | luckysheet.create({ |
| | | container: pageMarkerfun, |
| | | data: exportJson.sheets, |
| | | lang: 'zh', |
| | | showtoolbar: false, |
| | | showinfobar: false, |
| | | }); |
| | | } catch (err) { |
| | | console.error('渲染 Luckysheet 时出错:', err); |
| | | } |
| | | }); |
| | | } else { |
| | | alert("仅支持Word文件和PDF文件预览"); |
| | | alert("文件类型不支持预览"); |
| | | } |
| | | } catch(error) { |
| | | if (error.message=='Request failed with status code 404') |
| | | alert("文件不存在请重新上传!") |
| | | } catch (error) { |
| | | if (error.message == 'Request failed with status code 404') |
| | | alert("文件不存在请重新上传!") |
| | | } |
| | | } |
| | | |
| | | function setAccessoryFormatComm(row, pageMarker) { |
| | | |
| | | function setAccessoryFormatComm(row, pageMarker, that) { |
| | | if (row.accessoryMap) { |
| | | let data = ''; |
| | | |
| | | // 定义 title 函数 |
| | | window.titleName = async function (suffixName, fileName) { |
| | | if (suffixName == 'pdf') { |
| | | that.pdfName = fileName; |
| | | } else if (suffixName == 'doc' || suffixName == 'docx') { |
| | | that.docName = fileName; |
| | | } else if (suffixName == 'jpg' || suffixName == 'jpeg' || suffixName == 'png') { |
| | | that.imgName = fileName; |
| | | } else if (suffixName == 'xls' || suffixName == 'xlsx') { |
| | | that.xlsName = fileName; |
| | | } |
| | | } |
| | | |
| | | for (let key in row.accessoryMap) { |
| | | let url = key; |
| | | let fileName = row.accessoryMap[key]; |
| | | let suffixName = ''; |
| | | |
| | | if (fileName != null) { |
| | | let arr = fileName.split('.'); |
| | | suffixName = arr[arr.length - 1].toLowerCase(); |
| | | } |
| | | |
| | | let fileId = /_zt_oss_id=(\d+)/.exec(url); |
| | | fileId = fileId ? fileId[1] : ''; // 获取匹配的内容,如果为空则赋值为空字符串 |
| | | let pageMarker2 = pageMarker |
| | | if (suffixName == 'pdf' || suffixName == 'doc' || suffixName == 'docx') { |
| | | let pageMarker2 = pageMarker; |
| | | |
| | | if (suffixName == 'pdf' || suffixName == 'doc' || suffixName == 'docx' || suffixName == 'jpg' || suffixName == 'jpeg' || suffixName == 'png' || suffixName == 'xls' || suffixName == 'xlsx') { |
| | | if (suffixName == 'pdf') { |
| | | pageMarker2 = pageMarker + '-pdf' |
| | | } else if (suffixName == 'doc' || suffixName == 'docx') { |
| | | pageMarker2 = pageMarker + '-doc' |
| | | } else if (suffixName == 'jpg' || suffixName == 'jpeg' || suffixName == 'png') { |
| | | pageMarker2 = pageMarker + '-img' |
| | | } else if (suffixName == 'xls' || suffixName == 'xlsx') { |
| | | pageMarker2 = pageMarker + '-xls' |
| | | } |
| | | data += '<span><a href="javascript:void(0)" onclick="openPreviewDialog(\'' + fileId + '\',\'' + suffixName + '\',document.getElementById(\'' + pageMarker2 + '\'),\'' + pageMarker2 + '\');return false;"> <button>预览</button></a></span>'; |
| | | |
| | | // 将 title 函数的引用传递给按钮的点击事件 |
| | | data += '<span><a href="javascript:void(0)" onclick="openPreviewDialog(\'' + fileId + '\',\'' + suffixName + '\',document.getElementById(\'' + pageMarker2 + '\'),\'' + pageMarker2 + '\');return false;"> <button onclick="titleName(\'' + suffixName + '\', \'' + fileName + '\')">预览</button></a>' + fileName + '</span>'; |
| | | } else { |
| | | data += '<span><a href="' + url + '" style="display:block;overflow:hidden;word-break:keep-all;white-space:nowrap;text-overflow:ellipsis;">' + fileName + '</a></span>'; |
| | | } |
| | | data += '<span><a href="' + url + '" style="display:block;overflow:hidden;word-break:keep-all;white-space:nowrap;text-overflow:ellipsis;">' + fileName + '</a></span>'; |
| | | } |
| | | |
| | | return data; |
| | | } else { |
| | | return '<span></span>' |
| | | } |
| | | } |
| | | |
| | | function setAccessoryFormat2(row, pageMarker) { |
| | | |
| | | function setAccessoryFormatSingle(row, pageMarker, that) { |
| | | if (row.accessoryMap) { |
| | | console.log(111) |
| | | let data = ''; |
| | | for (let key in row.accessoryMap) { |
| | | let url = key; |
| | |
| | | let fileId = /_zt_oss_id=(\d+)/.exec(url); |
| | | fileId = fileId ? fileId[1] : ''; // 获取匹配的内容,如果为空则赋值为空字符串 |
| | | let pageMarker2 = pageMarker |
| | | console.log(111) |
| | | if (suffixName == 'pdf' || suffixName == 'doc' || suffixName == 'docx') { |
| | | if (suffixName == 'pdf' || suffixName == 'doc' || suffixName == 'docx' || suffixName == 'jpg' || suffixName == 'jpeg' || suffixName == 'png' || suffixName == 'xls' || suffixName == 'xlsx') { |
| | | if (suffixName == 'pdf') { |
| | | pageMarker2 = pageMarker + '-pdf' |
| | | that.pdfName = fileName; |
| | | } else if (suffixName == 'doc' || suffixName == 'docx') { |
| | | pageMarker2 = pageMarker + '-doc' |
| | | that.docName = fileName; |
| | | } else if (suffixName == 'jpg' || suffixName == 'jpeg' || suffixName == 'png') { |
| | | pageMarker2 = pageMarker + '-img' |
| | | that.imgName = fileName; |
| | | } else if (suffixName == 'xls' || suffixName == 'xlsx') { |
| | | pageMarker2 = pageMarker + '-xls' |
| | | that.xlsName = fileName; |
| | | } |
| | | console.log(111) |
| | | return openPreviewDialog(fileId, suffixName, document.getElementById(pageMarker2), pageMarker2); |
| | | } else { |
| | | alert("目前仅支持Word文件和PDF文件预览") |
| | | |
| | | return alert("文件类型不支持预览") |
| | | } |
| | | } |
| | | return data; |
| | |
| | | } |
| | | } |
| | | |
| | | export {setAccessoryFormatComm, setAccessoryFormat2} |
| | | function setAccessoryFormatByForm(row, pageMarker, that) { |
| | | if (row.files.groups[0].fields[0].files[0]) { |
| | | let data = ''; |
| | | let url = row.files.groups[0].fields[0].files[0].url; |
| | | let fileName = row.files.groups[0].fields[0].files[0].name; |
| | | let suffixName = ''; |
| | | if (fileName != null) { |
| | | let arr = fileName.split('.'); |
| | | suffixName = arr[arr.length - 1].toLowerCase(); |
| | | let fileId = /_zt_oss_id=(\d+)/.exec(url); |
| | | fileId = fileId ? fileId[1] : ''; // 获取匹配的内容,如果为空则赋值为空字符串 |
| | | let pageMarker2 = pageMarker |
| | | if (suffixName == 'pdf' || suffixName == 'doc' || suffixName == 'docx' || suffixName == 'jpg' || suffixName == 'jpeg' || suffixName == 'png' || suffixName == 'xls' || suffixName == 'xlsx') { |
| | | if (suffixName == 'pdf') { |
| | | pageMarker2 = pageMarker + '-pdf' |
| | | that.pdfName = fileName; |
| | | } else if (suffixName == 'doc' || suffixName == 'docx') { |
| | | pageMarker2 = pageMarker + '-doc' |
| | | that.docName = fileName; |
| | | } else if (suffixName == 'jpg' || suffixName == 'jpeg' || suffixName == 'png') { |
| | | pageMarker2 = pageMarker + '-img' |
| | | that.imgName = fileName; |
| | | } else if (suffixName == 'xls' || suffixName == 'xlsx') { |
| | | pageMarker2 = pageMarker + '-xls' |
| | | that.xlsName = fileName; |
| | | } |
| | | return openPreviewDialog(fileId, suffixName, document.getElementById(pageMarker2), pageMarker2); |
| | | } else { |
| | | return alert("文件类型不支持预览") |
| | | } |
| | | } |
| | | return data; |
| | | } else { |
| | | return '<span></span>'; |
| | | } |
| | | } |
| | | |
| | | export {setAccessoryFormatComm, setAccessoryFormatSingle, setAccessoryFormatByForm} |