jiangping
2024-10-16 24c767e8012d882f0aa8083d79503878c4647caf
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
<template>
  <div>
    <FileLinkItem
      v-for="(item, index) in links"
      :key="index"
      :link="item[linkName]"
      :name="item.name"
      :isUpload="isUpload"
      @showFile="showFile"
      @deleteAction="deleteFile(index)"
    />
    <PDFPreview ref="PDFPreview" />
    <el-image-viewer
      v-if="showViewer"
      :on-close="close"
      :initialIndex="tempIndex"
      :url-list="srcList"
      :zIndex="3000"
    />
  </div>
</template>
 
<script>
// import { fileType } from '@/utils/util';
import FileLinkItem from './FileLinkItem.vue';
import PDFPreview from './PDFPreview'
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
export default {
  components: {
    FileLinkItem,
    PDFPreview,
    ElImageViewer
  },
  props: {
    links: {
      type: Array,
      required: true
    },
    isUpload: {
      type: Boolean,
      default: true
    },
    linkName: {
      type: String,
      required: true
    }
  },
  data() {
    return {
      showViewer: false
    }
  },
  computed: {
    // 图片地址
    // srcList() {
    //   return this.links.filter(item => {
    //     let link = item[this.linkName]
    //     return fileType(link) == 1
    //   }).map(item => item[this.linkName])
    // }
  },
  methods: {
    deleteFile(index) {
      this.links.splice(index, 1)
    },
    downloadFile(url) {
      window.open(url, '_blank')
    },
    showFile(url) {
      debugger
      // let type = fileType(url)
      // switch (type) {
      //   case 1:
      //     this.tempIndex = this.srcList.findIndex(item => item == url)
      //     this.showViewer = true
      //     break;
      //   case 2:
      //     this.$refs.PDFPreview.open('', { url })
      //     break;
      //   case 3:
      //     window.open(url, '_blank')
      //     break;
      //   default:
      //     break;
      // }
    },
    close() {
      this.showViewer = false
    }
  },
}
</script>