uploadNew.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <el-upload
  3. class="upload-demo"
  4. action="string"
  5. :on-preview="handlePreview"
  6. :on-remove="handleRemove"
  7. :before-remove="beforeRemove"
  8. :before-upload="beforeUpload"
  9. multiple
  10. :file-list="fileList"
  11. :modal-append-to-body="false"
  12. ref="n_u_l_c"
  13. >
  14. <template v-if="btn=='btn'">
  15. <el-button size="small" type="success">点击上传</el-button>
  16. </template>
  17. <template v-else>
  18. <el-button size="small" type="text">点击上传</el-button>
  19. </template>
  20. </el-upload>
  21. </template>
  22. <script>
  23. import {strToFileList} from "@/utils/tv.js"
  24. export default {
  25. props:{
  26. itemId:{required: true,type: String},
  27. type: {required: true,type: String},
  28. idx: {required: false,type: String},
  29. btn: {required: false,type: String},
  30. fList :{required: false,type: String},
  31. },
  32. data() {
  33. return {
  34. fileList:[],
  35. params:{}
  36. }
  37. },
  38. methods: {
  39. handleRemove(file, fileList) {
  40. let type = this.type
  41. let k = 1
  42. let body = file;
  43. let files = fileList
  44. this.$emit("handleResult",{k,type,body,files});
  45. },
  46. handlePreview(file) {
  47. },
  48. beforeRemove(file, fileList) {
  49. return true;//this.$confirm(`确定移除 ${ file.name }?`);
  50. },
  51. beforeUpload(file){
  52. //market/tvImport/upload
  53. let query = new FormData();
  54. query.append("file", file);
  55. query.append("itemId", this.itemId);
  56. query.append("idx", this.idx);
  57. query.append("type", this.type);
  58. this.$http({
  59. url: "/market/tvImport/upload",
  60. method: "post",
  61. headers: {
  62. "Content-Type": "application/json",
  63. },
  64. data: query,
  65. }).then((res) => {
  66. if(res.data.result===0){
  67. this.handleResult(1,this.type,res.data.body)
  68. }else{
  69. this.$message({ message: res.data.desc,type: 'error'});
  70. }
  71. });
  72. },
  73. handleResult(k,type,body){
  74. let file = {"name":body.realName,"url":body.path + "/" + body.fileName,"fileId":body.fileId,"itemId":body.itemId,"idx":body.idx}
  75. this.fileList.push(file)
  76. let files = this.fileList
  77. //console.log(this.fileList)
  78. this.$emit("handleResult",{k,type,body,files});
  79. },
  80. resetFile(fileList){
  81. this.fileList = fileList
  82. },
  83. getFileList(){
  84. return this.fileList
  85. }
  86. },
  87. watch:{
  88. itemId(){
  89. this.fileList = strToFileList(this.fList)
  90. },
  91. idx(){
  92. this.fileList = strToFileList(this.fList)
  93. }
  94. },
  95. created(){
  96. this.fileList = strToFileList(this.fList)
  97. }
  98. }
  99. </script>
  100. <style>
  101. </style>