uploadImg.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <template>
  2. <div>
  3. <el-upload
  4. class="avatar-uploader"
  5. action="http://115.238.57.190:8010/farm-huyang/common/pic"
  6. :headers="{'x-auth-token': token}"
  7. name="photo"
  8. :show-file-list="false"
  9. :on-success="handleAvatarSuccess"
  10. :before-upload="beforeAvatarUpload"
  11. >
  12. <img v-if="imageUrl" :src="imageUrl" class="avatar" />
  13. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  14. </el-upload>
  15. </div>
  16. </template>
  17. <script>
  18. import { reqUploadImg } from "@/api/material.js";
  19. // http://192.168.1.5:8016/files/2ceed3f6bfbfd9fc6d6c9b8c455158ec-1000.jpg $attrs.value
  20. // http://192.168.1.5:8016/files/v2-996be5e52e4b43d08ae6ca8cae80b0fd_r.jpg
  21. // http://192.168.1.5:8016/files/v2-a862735c06feb9edce4369859daf5c12_r.jpg
  22. export default {
  23. data() {
  24. return {
  25. imageUrl: ""
  26. };
  27. },
  28. props: {
  29. value: String
  30. },
  31. watch: {
  32. value(v, ov) {
  33. console.log(v);
  34. }
  35. },
  36. computed: {
  37. imgUrl() {
  38. return this.value;
  39. }
  40. },
  41. beforeCreate() {
  42. this.token = localStorage.getItem("token")
  43. },
  44. created() {},
  45. methods: {
  46. beforeUpload(file) {
  47. // let formData = new FormData();
  48. // formData.append("photo", file);
  49. // reqUploadImg(formData)
  50. // .then(res => {
  51. // console.log(res);
  52. // // this.$attrs.value = res
  53. // // this.value = res;
  54. // this.dialogImageUrl = res;
  55. // this.$emit("on-msg", res);
  56. // // this.$set(this, 'value', res)
  57. // console.log();
  58. // })
  59. // .catch(err => {
  60. // console.log(err);
  61. // });
  62. // return false;
  63. },
  64. handleAvatarSuccess(res, file) {
  65. console.log('===========')
  66. console.log(res)
  67. this.imageUrl = URL.createObjectURL(file.raw);
  68. },
  69. beforeAvatarUpload(file) {
  70. const isJPG = file.type === "image/jpeg";
  71. const isLt2M = file.size / 1024 / 1024 < 2;
  72. if (!isJPG) {
  73. this.$message.error("上传头像图片只能是 JPG 格式!");
  74. }
  75. if (!isLt2M) {
  76. this.$message.error("上传头像图片大小不能超过 2MB!");
  77. }
  78. return isJPG && isLt2M;
  79. }
  80. }
  81. };
  82. </script>
  83. <style lang="scss" scope>
  84. .avatar-uploader .el-upload {
  85. border: 1px dashed #d9d9d9;
  86. border-radius: 6px;
  87. cursor: pointer;
  88. position: relative;
  89. overflow: hidden;
  90. }
  91. .avatar-uploader .el-upload:hover {
  92. border-color: #409eff;
  93. }
  94. .avatar-uploader-icon {
  95. font-size: 28px;
  96. color: #8c939d;
  97. width: 178px;
  98. height: 178px;
  99. line-height: 178px;
  100. text-align: center;
  101. }
  102. .avatar {
  103. width: 178px;
  104. height: 178px;
  105. display: block;
  106. }
  107. </style>