liuxiaolong
2019-05-06 acc45d2ece02563964d7b8a22ff0c40bd8358889
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
<template>
  <div class="pl30">
    <div class="upload-content">
      <b-btn variant="primary">上传</b-btn>
      <input type="file" @change="handleUpLoad" />
    </div>
    <div class="upload-name-content" v-if="file">
      <p :key="item" v-for="(item, index) of file">
        <span>{{item}}</span>
        <span class="ion ion-md-close-circle" @click="handleDelFile(index)"></span>
      </p>
    </div>
  </div>
</template>
<script>
import axios from 'axios'
export default {
  name: 'uploadCommon',
  props: {
    filesObj: {
      default: {},
      type: Object
    }
  },
  data() {
    return {
      userInfo: this.$store.getters.basicUserInfo,
      file: [],
      fileIds: []
    }
  },
  computed(){
 
  },
  methods: {
    // 上传附件
    async handleUpLoad(e) {
      this.file = [e.target.files[0].name, ...this.file]
      let file = e.target.files[0]
      const fd = new FormData()
      const token = JSON.parse(
        sessionStorage.getItem('loginedInfo')
      ).access_token.split(' ')[1]
      fd.append('file', file)
      fd.append('fileSource', 'FDFS')
      let res = await axios({
        method: 'post',
        url: `data/api-f/files?access_token=${token}`,
        data: fd
      })
      if (res) {
        this.fileIds = [res.data.id, ...this.fileIds]
        console.log(res.data.id, 'this.fileIds', this.fileIds)
      }
    },
    // 删除附件
    handleDelFile(index) {
      // TODO
      this.file.splice(index, 1)
      this.fileIds.splice(index, 1)
    }
  }
}
</script>
 
<style lang="scss" >
.upload-content {
  position: relative;
  input[type='file'] {
    position: absolute;
    opacity: 0;
    width: 67px;
    height: 38px;
    left: 0;
  }
}
.upload-name-content {
  line-height: 24px;
  p {
    margin-bottom: 0;
    &:hover span {
      color: red;
    }
  }
}
</style>