upload.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <div>
  3. <div class="preview">
  4. <img :src="qualifications.url==''?'/images/all/upload-apply.png':qualifications.url" class="previewImage"/>
  5. <input type="file" v-if="!qualifications.url" class="com-input" @change="update" accept="image/jpeg,image/jpg,image/gif,image/bmp,image/png,.pdf" />
  6. </div>
  7. <div class="hover-show" v-if="qualifications.url">
  8. <span class="delete" title="删除" @click="deleteImg(qualifications.url)"><i class="fa fa-trash"></i></span>
  9. <a @click="showImg(qualifications.url)"><i class="fa fa-search"></i>查看</a>
  10. </div>
  11. <div id="image-box" v-if="isShow">
  12. <div class="x-floating-wrap"></div>
  13. <div class="x-floating">
  14. <div id="item-content">
  15. <div class="x-close-wrap" @click="isShow = false"><a href="javascript:void(0);">&times;</a></div>
  16. <div class="img"><img :src="qualifications.url"/></div>
  17. </div>
  18. </div>
  19. </div>
  20. </div>
  21. </template>
  22. <script>
  23. export default {
  24. data () {
  25. return {
  26. qualifications: {
  27. url: ''
  28. },
  29. isShow: false
  30. }
  31. },
  32. methods: {
  33. update (e) {
  34. let file = e.target.files[0]
  35. let param = new FormData()
  36. param.append('file', file, file.name)
  37. param.append('chunk', '0')
  38. let config = {
  39. headers: {'Content-Type': 'multipart/form-data'}
  40. }
  41. this.$http.post('/api/images', param, config)
  42. .then(response => {
  43. this.qualifications.url = response.data[0].path
  44. this.$emit('uploadAction', response.data[0].path)
  45. })
  46. },
  47. showImg (imgUrl) {
  48. this.qualifications.url = imgUrl
  49. this.isShow = true
  50. },
  51. deleteImg () {
  52. this.qualifications.url = ''
  53. }
  54. }
  55. }
  56. </script>