import {renderAsync} from "docx-preview";
|
//let docx = require("docx-preview");
|
import http from '../../packages/utils/request';
|
import Vue from 'vue';
|
|
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 (previewContainer != null) {
|
previewContainer.src = `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${fileId}`;
|
} else {
|
alert("iframe未加载")
|
}
|
} 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 {
|
}
|
}, 100);
|
} else {
|
alert("仅支持Word文件和PDF文件预览");
|
}
|
} catch(error) {
|
if (error.message=='Request failed with status code 404')
|
alert("文件不存在请重新上传!")
|
}
|
}
|
|
function setAccessoryFormatComm(row, pageMarker) {
|
if (row.accessoryMap) {
|
let data = '';
|
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') {
|
if (suffixName == 'pdf') {
|
pageMarker2 = pageMarker + '-pdf'
|
} else if (suffixName == 'doc' || suffixName == 'docx') {
|
pageMarker2 = pageMarker + '-doc'
|
}
|
data += '<span><a href="javascript:void(0)" onclick="openPreviewDialog(\'' + fileId + '\',\'' + suffixName + '\',document.getElementById(\'' + pageMarker2 + '\'),\'' + pageMarker2 + '\');return false;"> <button>预览</button></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) {
|
if (row.accessoryMap) {
|
console.log(111)
|
let data = '';
|
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
|
console.log(111)
|
if (suffixName == 'pdf' || suffixName == 'doc' || suffixName == 'docx') {
|
if (suffixName == 'pdf') {
|
pageMarker2 = pageMarker + '-pdf'
|
} else if (suffixName == 'doc' || suffixName == 'docx') {
|
pageMarker2 = pageMarker + '-doc'
|
}
|
console.log(111)
|
return openPreviewDialog(fileId, suffixName, document.getElementById(pageMarker2), pageMarker2);
|
} else {
|
alert("目前仅支持Word文件和PDF文件预览")
|
|
}
|
}
|
return data;
|
} else {
|
return '<span></span>';
|
}
|
}
|
|
export {setAccessoryFormatComm, setAccessoryFormat2}
|