jinlin
2023-12-20 1d29540c77a0b736e10a9be0c0834c1813c3303e
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<template>
  <div>
    <div v-show="isOpenDocPreviewDialog" class="preview-dialog">
      <button @click="closePreviewDialog('doc')" class="close-button">关闭</button>
      <div :id="pageMarkerfun+'-doc'" style="overflow: auto; width: 100%; height: 90%;"></div>
      <div class="file-name">{{ docName }}</div>
    </div>
    <div v-show="isOpenPdfPreviewDialog" class="preview-dialog">
      <button @click="closePreviewDialog('pdf')" class="close-button">关闭</button>
      <iframe :id="pageMarkerfun+'-pdf'" src="" style="margin:0;padding:0;width:100%;height:90%;"></iframe>
      <div class="file-name">{{ pdfName }}</div>
    </div>
    <div v-show="isOpenImgPreviewDialog" class="preview-dialog">
      <button @click="closePreviewDialog('img')" class="close-button">关闭</button>
      <img :id="pageMarkerfun+'-img'" src="" style="margin:0;padding:0;width:100%;height:90%;">
      <div class="file-name">{{ imgName }}</div>
    </div>
    <div v-show="isOpenXlsPreviewDialog" class="preview-dialog">
      <button @click="closePreviewDialog('xls')" class="close-button">关闭</button>
      <div :id="pageMarkerfun+'-xls'" style="margin:0;padding:0;width:100%;height:90%;"></div>
      <div class="file-name">{{ xlsName }}</div>
    </div>
  </div>
</template>
 
<script>
  import {setAccessoryFormatComm} from '@/commonJS/commonFile'
  import {setAccessoryFormatSingle} from '@/commonJS/commonFile'
  import {setAccessoryFormatByForm} from '@/commonJS/commonFile'
  export default {
    name:'ViewAccessory',
    props: {
      pageMarkerfun: {
        default: ''
      }
    },
    data() {
      return {
        isOpenDocPreviewDialog: false,
        isOpenPdfPreviewDialog: false,
        isOpenImgPreviewDialog: false,
        isOpenXlsPreviewDialog: false,
        docName: '',
        pdfName: '',
        imgName: '',
        xlsName: ''
      }
    },
    created() {
      this.$EventBus.$on(this.pageMarkerfun+'-doc', () => {
        this.isOpenDocPreviewDialog = true
      })
      this.$EventBus.$on(this.pageMarkerfun +'-pdf', () => {
        this.isOpenPdfPreviewDialog = true
      })
      this.$EventBus.$on(this.pageMarkerfun +'-img', () => {
        this.isOpenImgPreviewDialog = true
      })
      this.$EventBus.$on(this.pageMarkerfun +'-xls', () => {
        this.isOpenXlsPreviewDialog = true
      })
    },
    methods: {
      openAccessoryFormatComm(row) {
        console.log(row, 'setAccessoryFormatSingle(row)');
        return setAccessoryFormatComm(row, this.pageMarkerfun, this)
      },
      openAccessoryFormatSingle(row) {
        console.log(row, 'setAccessoryFormatSingle(row)');
        return setAccessoryFormatSingle(row, this.pageMarkerfun, this)
      },
      openAccessoryFormatByForm(row) {
        console.log(row, 'setAccessoryFormatSingle(row)');
        return setAccessoryFormatByForm(row, this.pageMarkerfun, this)
      },
 
      closePreviewDialog(file) {
        if (file == 'doc') {
          this.docName = ''
          this.isOpenDocPreviewDialog = false // 关闭弹窗
          const docElement = document.getElementById(this.pageMarkerfun +'-doc')
          docElement.innerHTML = ''
        } else if (file == 'pdf') {
          this.pdfName = ''
          this.isOpenPdfPreviewDialog = false;
          let iframe = document.getElementById(this.pageMarkerfun +'-pdf')
          iframe.src = ''
        } else if (file == 'img') {
          this.imgName = '';
          this.isOpenImgPreviewDialog = false;
          let img = document.getElementById(this.pageMarkerfun +'-img')
          img.src = ''
        } else if (file == 'xls') {
          this.xlsName = ''
          this.isOpenXlsPreviewDialog = false;
          let excelElement = document.getElementById(this.pageMarkerfun+'-xls')
          excelElement.innerHTML = ''
        }
      }
    }
  }
</script>
<style>
  /* 弹窗样式 */
  .preview-dialog {
    z-index: 100;
    width: 1200px;
    height: 700px;
    position: fixed;
    top: 120px;
    right: 10px;
    background: gray;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .close-button {
    position: absolute;
    top: 10px;
    right: 10px;
    border: none;
    font-size: 18px;
    color: snow;
    cursor: pointer;
    background: #062944;
  }
 
  .file-name {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    border: none;
    font-size: 18px;
    color: snow;
    cursor: pointer;
    background: #062944;
  }
 
  img {
    object-fit: contain;
  }
</style>