jinlin
2023-11-16 6af5b3def3f511a19c7ccff6f223ef239b178d48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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}