| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 | 
							- <template>
 
-   <div class="upload-container">
 
-     <el-upload
 
-       :data="dataObj"
 
-       :multiple="false"
 
-       :show-file-list="false"
 
-       :on-success="handleImageSuccess"
 
-       class="image-uploader"
 
-       drag
 
-       action="https://httpbin.org/post"
 
-     >
 
-       <i class="el-icon-upload" />
 
-       <div class="el-upload__text">
 
-         将文件拖到此处,或<em>点击上传</em>
 
-       </div>
 
-     </el-upload>
 
-     <div class="image-preview image-app-preview">
 
-       <div v-show="imageUrl.length>1" class="image-preview-wrapper">
 
-         <img :src="imageUrl">
 
-         <div class="image-preview-action">
 
-           <i class="el-icon-delete" @click="rmImage" />
 
-         </div>
 
-       </div>
 
-     </div>
 
-     <div class="image-preview">
 
-       <div v-show="imageUrl.length>1" class="image-preview-wrapper">
 
-         <img :src="imageUrl">
 
-         <div class="image-preview-action">
 
-           <i class="el-icon-delete" @click="rmImage" />
 
-         </div>
 
-       </div>
 
-     </div>
 
-   </div>
 
- </template>
 
- <script>
 
- import { getToken } from '@/api/qiniu'
 
- export default {
 
-   name: 'SingleImageUpload3',
 
-   props: {
 
-     value: {
 
-       type: String,
 
-       default: ''
 
-     }
 
-   },
 
-   data() {
 
-     return {
 
-       tempUrl: '',
 
-       dataObj: { token: '', key: '' }
 
-     }
 
-   },
 
-   computed: {
 
-     imageUrl() {
 
-       return this.value
 
-     }
 
-   },
 
-   methods: {
 
-     rmImage() {
 
-       this.emitInput('')
 
-     },
 
-     emitInput(val) {
 
-       this.$emit('input', val)
 
-     },
 
-     handleImageSuccess(file) {
 
-       this.emitInput(file.files.file)
 
-     },
 
-     beforeUpload() {
 
-       const _self = this
 
-       return new Promise((resolve, reject) => {
 
-         getToken().then(response => {
 
-           const key = response.data.qiniu_key
 
-           const token = response.data.qiniu_token
 
-           _self._data.dataObj.token = token
 
-           _self._data.dataObj.key = key
 
-           this.tempUrl = response.data.qiniu_url
 
-           resolve(true)
 
-         }).catch(err => {
 
-           console.log(err)
 
-           reject(false)
 
-         })
 
-       })
 
-     }
 
-   }
 
- }
 
- </script>
 
- <style lang="scss" scoped>
 
- @import "~@/styles/mixin.scss";
 
- .upload-container {
 
-   width: 100%;
 
-   position: relative;
 
-   @include clearfix;
 
-   .image-uploader {
 
-     width: 35%;
 
-     float: left;
 
-   }
 
-   .image-preview {
 
-     width: 200px;
 
-     height: 200px;
 
-     position: relative;
 
-     border: 1px dashed #d9d9d9;
 
-     float: left;
 
-     margin-left: 50px;
 
-     .image-preview-wrapper {
 
-       position: relative;
 
-       width: 100%;
 
-       height: 100%;
 
-       img {
 
-         width: 100%;
 
-         height: 100%;
 
-       }
 
-     }
 
-     .image-preview-action {
 
-       position: absolute;
 
-       width: 100%;
 
-       height: 100%;
 
-       left: 0;
 
-       top: 0;
 
-       cursor: default;
 
-       text-align: center;
 
-       color: #fff;
 
-       opacity: 0;
 
-       font-size: 20px;
 
-       background-color: rgba(0, 0, 0, .5);
 
-       transition: opacity .3s;
 
-       cursor: pointer;
 
-       text-align: center;
 
-       line-height: 200px;
 
-       .el-icon-delete {
 
-         font-size: 36px;
 
-       }
 
-     }
 
-     &:hover {
 
-       .image-preview-action {
 
-         opacity: 1;
 
-       }
 
-     }
 
-   }
 
-   .image-app-preview {
 
-     width: 320px;
 
-     height: 180px;
 
-     position: relative;
 
-     border: 1px dashed #d9d9d9;
 
-     float: left;
 
-     margin-left: 50px;
 
-     .app-fake-conver {
 
-       height: 44px;
 
-       position: absolute;
 
-       width: 100%; // background: rgba(0, 0, 0, .1);
 
-       text-align: center;
 
-       line-height: 64px;
 
-       color: #fff;
 
-     }
 
-   }
 
- }
 
- </style>
 
 
  |