| 
					
				 | 
			
			
				@@ -0,0 +1,68 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div class="component-upload-image">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-upload
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :action="uploadImgUrl"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      list-type="picture-card"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :on-success="handleUploadSuccess"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :before-upload="handleBeforeUpload"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :on-error="handleUploadError"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      name="file"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :show-file-list="false"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :headers="headers"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      style="display: inline-block; vertical-align: top"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    >
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <img v-if="value" :src="value" class="avatar" />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <i v-else class="el-icon-plus avatar-uploader-icon"></i>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-upload>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </div>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { getToken } from "@/utils/auth";
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  components: {},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      headers: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authorization: "Bearer " + getToken(),
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      },
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    };
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  },
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  props: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    value: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: String,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      default: "",
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    },
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  },
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleUploadSuccess(res) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$emit("input", res.url);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loading.close();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    },
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleBeforeUpload() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loading = this.$loading({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lock: true,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        text: "上传中",
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        background: "rgba(0, 0, 0, 0.7)",
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    },
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleUploadError() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$message({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type: "error",
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        message: "上传失败",
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      });
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loading.close();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    },
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  },
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  watch: {},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+};
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style scoped lang="scss">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.avatar {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  width: 100%;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  height: 100%;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |