baseBlock.vue 2.24 KB
<template>
  <div>
    <el-row :gutter="20">
      <el-col :span="12">
        <el-form ref="form" label-width="80px">
          <el-form-item label="标题">
            <el-input v-model="formData.title"/>
          </el-form-item>
          <el-form-item label="封面">
            <div style="margin: 10px">
              <el-button @click="uploadType = true" v-if="!uploadType">地址上传</el-button>
              <el-button @click="uploadType = false" v-if="uploadType">文件上传</el-button>
            </div>
            <el-upload
              v-if="!uploadType"
              class="avatar-uploader"
              :http-request="uploadFileImage"
              :before-upload="beforeAvatarUpload"
              action="https://jsonplaceholder.typicode.com/posts/"
              :on-success="uploadImgSuccess"
              :show-file-list="false">
              <img v-if="formData.cover" :src="formData.cover" class="avatar">
              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
            </el-upload>
            <el-input v-model="formData.cover" v-if="uploadType"></el-input>
          </el-form-item>
        </el-form>
      </el-col>
    </el-row>
  </div>
</template>

<script>
  import {uploadFileApi} from "../../service/api";
  export default {
    name: "baseBlock",
    props:[
      'formData'
    ],
    data(){
      return{
        uploadType:false
      }
    },
    methods:{
      beforeAvatarUpload(file){
        const isJPG = (file.type === 'image/jpeg' || file.type === 'image/png' );
        const isLt2M = file.size / 1024  < 200;
        if (!isJPG) {
          this.$message.error('上传头像图片只能是 JPG 或 PNG 格式!');
        }
        if (!isLt2M) {
          this.$message.error('上传头像图片大小不能超过 200KB!');
        }
        return isJPG && isLt2M;
      },
      uploadFileImage(a){
          uploadFileApi({file:a.file,type:'local',obj:a}).then(res=>{
            this.formData.cover = process.env.IMAGE_URL_HEAD + res.url;
            this.$message({
              type: 'success',
              message: '上传成功!'
            });
            a.onSuccess('上传成功')
          });
      },
      uploadImgSuccess(a,b,c){
      }
    }
  }
</script>

<style scoped>

</style>