import {renderAsync} from "docx-preview";
|
//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}
|
Vue.prototype.$EventBus.$emit(pageMarkerfun)
|
if (suffixName == 'pdf' || suffixName == 'jpg' || suffixName == 'jpeg' || suffixName == 'png') {
|
if (previewContainer != null) {
|
previewContainer.src = `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${fileId}`
|
} else {
|
alert("渲染区域未加载")
|
}
|
} else if (suffixName == 'doc' || suffixName == 'docx') {
|
const response = await http.get('/sys/oss/content2', {params: formData, responseType: 'blob'});
|
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.transformExcelToLucky(
|
arrayBuffer,
|
function (exportJson, luckysheetfile) {
|
luckysheet.create({
|
container: pageMarkerfun,
|
data: exportJson.sheets,
|
lang: 'zh',
|
showtoolbar: false,
|
showinfobar: false,
|
});
|
})
|
} else {
|
alert("文件类型不支持预览");
|
}
|
} catch (error) {
|
if (error.message == 'Request failed with status code 404')
|
alert("文件不存在请重新上传!")
|
}
|
}
|
|
|
|
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' || 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'
|
}
|
|
// 将 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>';
|
}
|
}
|
|
return data;
|
} else {
|
return '<span></span>'
|
}
|
}
|
|
|
function setAccessoryFormatSingle(row, pageMarker,that) {
|
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] : ''; // 获取匹配的内容,如果为空则赋值为空字符串
|
alert(fileId)
|
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;
|
}
|
alert(pageMarker2)
|
return openPreviewDialog(fileId, suffixName, document.getElementById(pageMarker2), pageMarker2);
|
} else {
|
return alert("文件类型不支持预览")
|
}
|
}
|
return data;
|
} else {
|
return '<span></span>';
|
}
|
}
|
|
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}
|