最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue+element實(shí)現(xiàn)圖片上傳及裁剪功能

 更新時(shí)間:2020年06月29日 09:40:53   作者:沫熙瑾年  
這篇文章主要為大家詳細(xì)介紹了vue+element實(shí)現(xiàn)圖片上傳及裁剪功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了vue+element實(shí)現(xiàn)圖片上傳及裁剪的具體代碼,供大家參考,具體內(nèi)容如下

隨便寫的一個(gè)小demo 功能是沒有任何問題 可能里面會(huì)有一些小細(xì)節(jié)沒有優(yōu)化 

1 、安裝 vue-cropper

npm install vue-cropper

2、組件內(nèi)使用

import { VueCropper } from 'vue-cropper' 
components: {
 VueCropper,
},

具體可見官網(wǎng)

demo

<template>
  <div>
    <h1>圖片上傳</h1>
    <div>
      <el-upload
        class="avatar-uploader"
        action="https://jsonplaceholder.typicode.com/posts/"
        :show-file-list="false"
        :on-success="handleAvatarSuccess"
        :before-upload="beforeAvatarUpload"
      >
      <img v-if="imageUrl" :src="imageUrl" class="avatar">
      <i v-else class="el-icon-plus avatar-uploader-icon"></i>
      </el-upload>
    </div>
    <el-dialog title="圖片剪裁" :visible.sync="dialogVisible" append-to-body>
      <div class="cropper-content">
        <div class="cropper" style="text-align:center">
          <vueCropper
            ref="cropper"
            :img="option.img"
            :outputSize="option.outputSize"
            :outputType="option.outputType"
            :info="option.info"
            :canScale="option.canScale"
            :autoCrop="option.autoCrop"
            :autoCropWidth="option.autoCropWidth"
            :autoCropHeight="option.autoCropHeight"
            :fixed="option.fixed"
            :fixedBox="option.fixedBox"
            :fixedNumber="option.fixedNumber"
          ></vueCropper>
        </div>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="finish" :loading="loading">確認(rèn)</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import {VueCropper} from 'vue-cropper'
export default {
  components: {
    VueCropper
  },
  data(){
    return{
      imageUrl: '',
      dialogVisible: false,
      // 裁剪組件的基礎(chǔ)配置option
      option: {
        img: '', // 裁剪圖片的地址
        info: true, // 裁剪框的大小信息
        outputSize: 0.8, // 裁剪生成圖片的質(zhì)量
        outputType: 'jpeg', // 裁剪生成圖片的格式
        canScale: false, // 圖片是否允許滾輪縮放
        autoCrop: true, // 是否默認(rèn)生成截圖框
        autoCropWidth: 100, // 默認(rèn)生成截圖框?qū)挾?
        autoCropHeight: 100, // 默認(rèn)生成截圖框高度
        fixedBox: true, // 固定截圖框大小 不允許改變
        fixed: true, // 是否開啟截圖框?qū)捀吖潭ū壤?
        fixedNumber: [1, 1], // 截圖框的寬高比例
        full: true, // 是否輸出原圖比例的截圖
        canMoveBox: false, // 截圖框能否拖動(dòng)
        original: false, // 上傳圖片按照原始比例渲染
        centerBox: false, // 截圖框是否被限制在圖片里面
        infoTrue: true, // true 為展示真實(shí)輸出圖片寬高 false 展示看到的截圖框?qū)捀?
        canMove:true,
      },
      picsList: [], //頁面顯示的數(shù)組
      // 防止重復(fù)提交
      loading: false,
      fileinfo:{}
    }
  },
  methods: {
   handleAvatarSuccess(res, file,fileList) {
    //上傳成功后將圖片地址賦值給裁剪框顯示圖片
    this.$nextTick(() => {
      this.option.img = URL.createObjectURL(file.raw);
      this.fileinfo = res
      this.dialogVisible = true
    })
   },
   beforeAvatarUpload(file) {
    const isJPG = file.type === 'image/jpeg'||file.type==='image/png';
    const isLt2M = file.size / 1024 / 1024 < 2;
 
    if (!isJPG) {
     this.$message.error('上傳頭像圖片只能是 JPG 格式!');
    }
    if (!isLt2M) {
     this.$message.error('上傳頭像圖片大小不能超過 2MB!');
    }
    return isJPG && isLt2M;
   },
    finish() {
      this.$refs.cropper.getCropBlob((data) => {
        var fileName = 'goods' + this.fileinfo.uid
        this.loading = true
        //上傳阿里云服務(wù)器
        //請(qǐng)求
      })
    }
  }
}
</script>
<style scoped>
  .avatar-uploader{
    background:red!important;
    width:150px;height:150px;
    text-align: center;
    line-height: 150px;
  }
  .el-icon-plus{
    width:150px;height:150px;font-size:30px;
  }
  .cropper-content{
    width:500px;height:500px;background: pink;
  }
  .cropper{
    width:500px;
    height:500px;
    background: yellow;
  }
</style>

關(guān)于vue.js組件的教程,請(qǐng)大家點(diǎn)擊專題vue.js組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue組件的使用教程詳解

    Vue組件的使用教程詳解

    組件 (Component) 是 Vue.js 最強(qiáng)大的功能之一。組件可以擴(kuò)展 HTML 元素,封裝可重用的代碼。這篇文章給大家介紹了vue組件的使用,需要的朋友參考下吧
    2018-01-01
  • Vuex報(bào)錯(cuò)之[vuex] unknown mutation type: handlePower問題及解決

    Vuex報(bào)錯(cuò)之[vuex] unknown mutation type: han

    這篇文章主要介紹了Vuex報(bào)錯(cuò)之[vuex] unknown mutation type: handlePower問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue2筆記 — vue-router路由懶加載的實(shí)現(xiàn)

    vue2筆記 — vue-router路由懶加載的實(shí)現(xiàn)

    本篇文章主要介紹了vue2筆記 — vue-router路由懶加載示例,實(shí)例分析了vue-router路由懶加載的實(shí)現(xiàn),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • VUE-ElementUI?時(shí)間區(qū)間選擇器的使用

    VUE-ElementUI?時(shí)間區(qū)間選擇器的使用

    這篇文章主要介紹了VUE-ElementUI?時(shí)間區(qū)間選擇器的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Vue?中使用?WebWorker的示例代碼

    Vue?中使用?WebWorker的示例代碼

    這篇文章主要介紹了Vue中使用WebWorker的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • el-upload大文件切片上傳實(shí)現(xiàn)示例詳解

    el-upload大文件切片上傳實(shí)現(xiàn)示例詳解

    這篇文章主要為大家介紹了el-upload大文件切片上傳實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • vue3利用keepAlive緩存頁面實(shí)例詳解

    vue3利用keepAlive緩存頁面實(shí)例詳解

    <keep-alive> 是一個(gè)抽象組件,它自身不會(huì)渲染一個(gè)DOM元素,也不會(huì)出現(xiàn)在組件的父組件鏈中,下面這篇文章主要給大家介紹了關(guān)于vue3利用keepAlive緩存頁面的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • vue3中超好用的插件整理

    vue3中超好用的插件整理

    最近找到幾個(gè)好用的插件,這里分享一下,下面這篇文章主要給大家介紹了關(guān)于vue3中超好用的插件整理,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • vue3+Ts使用pinia方式(vue-lic搭建項(xiàng)目)

    vue3+Ts使用pinia方式(vue-lic搭建項(xiàng)目)

    文章介紹了如何在Vue 3項(xiàng)目中使用Pinia進(jìn)行狀態(tài)管理,主要內(nèi)容包括安裝Pinia、初始化、在main.ts中注冊(cè)和使用,以及在.vue的setup中使用state,文章還提到getters和actions的使用可以參考官方文檔,總結(jié)部分表達(dá)了作者希望得到大家支持的意愿
    2025-01-01
  • Vue.js列表渲染綁定jQuery插件的正確姿勢

    Vue.js列表渲染綁定jQuery插件的正確姿勢

    這篇文章主要為大家詳細(xì)介紹了Vue.js列表渲染綁定jQuery插件的正確姿勢,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評(píng)論

南宫市| 海盐县| 宣武区| 治多县| 柏乡县| 宜宾市| 米泉市| 武宁县| 门头沟区| 潼南县| 交城县| 普宁市| 凉山| 大城县| 通化县| 晋江市| 瓮安县| 灵寿县| 北京市| 阿勒泰市| 灵川县| 新营市| 曲阳县| 建昌县| 乌兰浩特市| 柞水县| 都江堰市| 新民市| 江达县| 霸州市| 德阳市| 新乡县| 大丰市| 凤山市| 封开县| 抚顺市| 辛集市| 广汉市| 枞阳县| 玛多县| 桃江县|