uploadNewDown.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <div>
  3. <div v-for="item in fileList" :key="item.id">
  4. <el-button type="text" size="small" @click="uploaddown(item)" >{{item.name}}</el-button>
  5. </div>
  6. </div>
  7. </template>
  8. <script>
  9. export default {
  10. props:{
  11. files :{required: false,type: String},
  12. },
  13. data() {
  14. return {
  15. fileList:[],
  16. params:{}
  17. }
  18. },
  19. methods:{
  20. uploaddown(v){
  21. this.$http({
  22. url: '/market/tvImport/download',
  23. method: "post",
  24. headers: {
  25. "Content-Type": "application/json",
  26. },
  27. responseType: "blob",
  28. data: {"id": v.fileId, "fileName": v.name},
  29. }).then((response) => {
  30. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  31. let blob = new Blob([response.data], {
  32. type: 'application/vnd.ms-excel'
  33. });
  34. window.navigator.msSaveOrOpenBlob(blob, v.name);
  35. } else {
  36. /* 火狐谷歌的文件下载方式 */
  37. var blob = new Blob([response.data])
  38. var downloadElement = document.createElement('a')
  39. var href = window.URL.createObjectURL(blob);
  40. downloadElement.href = href;
  41. downloadElement.download = v.name;
  42. document.body.appendChild(downloadElement);
  43. downloadElement.click();
  44. document.body.removeChild(downloadElement);
  45. window.URL.revokeObjectURL(href);
  46. }
  47. });
  48. }
  49. },
  50. created(){
  51. if(this.files===""){
  52. this.fileList=[];
  53. }else{
  54. this.fileList = JSON.parse(this.files);
  55. }
  56. }
  57. }
  58. </script>
  59. <style scoped lang="scss">
  60. </style>