filepond-image.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <template>
  2. <div>
  3. <file-pond
  4. ref="pond"
  5. name="file"
  6. label-idle="选择图片或拖动图片到此处"
  7. label-file-processing="图片正在上传,请稍后"
  8. label-file-processing-aborted="图片上传被取消"
  9. label-tap-to-retry="尝试重试"
  10. label-file-processing-complete="图片上传成功!"
  11. accepted-file-types="image/png, image/jpeg, image/jpg, image/gif"
  12. :imagePreviewHeight="32"
  13. :allow-multiple="true"
  14. :max-files="9"
  15. :server="server"
  16. :instant-upload="true"
  17. @init="handleFilePondInit"
  18. @processfile="success"
  19. />
  20. </div>
  21. </template>
  22. <script>
  23. import vueFilePond from 'vue-filepond'
  24. import 'filepond/dist/filepond.min.css'
  25. import FilePondPluginImagePreview from 'filepond-plugin-image-preview'
  26. import 'filepond-plugin-image-preview/dist/filepond-plugin-image-preview.min.css'
  27. import FilePondPluginFileValidateType from 'filepond-plugin-file-validate-type'
  28. import FilePondPluginFileValidateSize from 'filepond-plugin-file-validate-size'
  29. // Create component
  30. const FilePond = vueFilePond(
  31. FilePondPluginFileValidateType,
  32. FilePondPluginImagePreview,
  33. FilePondPluginFileValidateSize
  34. )
  35. var resp = ''
  36. export default {
  37. name: 'FilePondImage',
  38. components: {
  39. FilePond
  40. },
  41. resp,
  42. data() {
  43. return {
  44. server: {
  45. url: '//file.reghao.cn/api/file/upload/image',
  46. process: {
  47. headers: {
  48. 'Authorization': this.$store.getters.token
  49. },
  50. onload(response) {
  51. resp = JSON.parse(response)
  52. }
  53. }
  54. }
  55. }
  56. },
  57. created() {
  58. },
  59. methods: {
  60. handleFilePondInit() {
  61. // FilePond instance methods are available on `this.$refs.pond`
  62. },
  63. success() {
  64. this.$emit('resp', resp)
  65. }
  66. }
  67. }
  68. </script>