欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue elementUI 上傳非空驗(yàn)證示例代碼

 更新時(shí)間:2023年12月07日 14:27:06   作者:半獸先生  
這篇文章主要介紹了vue elementUI 上傳非空驗(yàn)證,原理就是寫一個(gè)假的紅色*號(hào),每次點(diǎn)擊查看的時(shí)候執(zhí)this.rules.staffImg[0].required = false,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧

<el-form-item label="照片" prop="staffImg">
    <template v-slot:label>
        <span v-show="!rules.staffImg[0].required"
            style="color: #ff4949;margin-right: 4px;">*</span>
        <span>照片</span>
    </template>
    <el-upload class="avatar-uploader" :action="action" ref="upload" :show-file-list="false"
        :on-change="uploadChange" :headers="headers" :before-upload="fileBeforeUpload"
        :on-success="fileUploadSuccess" accept=".jpg,.png">
        <img v-if="imageUrl" :src="imageUrl" class="avatar" />
        <i v-else class="el-icon-plus avatar-uploader-icon"></i>
    </el-upload>
</el-form-item>
            // 表單校驗(yàn)
            rules: {
                staffImg: [
                    { required: true, message: "圖片不能為空", trigger: ["blur", 'change'] },
                ],
            },
    computed: {
        // 上傳頭像
        action() {
            let baseUrl = "";
            if (process.env.NODE_ENV === "development") {
                baseUrl = process.env.VUE_APP_BASE_API + "/base/common/uploadFile";
            } else {
                baseUrl = process.env.VUE_APP_BASE_API + "/base/common/uploadFile";
            }
            return baseUrl;
        },
    },
        uploadChange(file, fileList) {
            // console.log("上傳進(jìn)行改變", this.imageUrl);
            this.headFile = file;
            this.rules.staffImg[0].required = false;
        },
        //圖片上傳之前
        fileBeforeUpload(file) {
            const that = this;
            let size = file.size / 1024 / 1024;
            if (size >= 1) {
                that.$modal.msgError("上傳圖片過大!請(qǐng)上傳1M以內(nèi)的圖片");
                return;
            }
            const isJpgOrPng =
                file.type === "image/jpeg" || file.type === "image/png";
            // const isLt1M = file.size / 1024 / 1024 < 1;
            const isLt1M = true;
            if (!isJpgOrPng) {
                this.$message.error("上傳圖片只能是 JPG 或 PNG 格式!");
                return false;
            }
            // 加密
            const time = toString(new Date().getTime());
            const p = encrypt(time);
            this.headers["s"] = p;
            this.headers["t"] = time;
            return new Promise((resolve) => {
                // 小于1M 不壓縮
                if (isLt1M) {
                    resolve(file);
                }
                // 壓縮到400KB,這里的400就是要壓縮的大小,可自定義
                imageConversion.compressAccurately(file, 200).then((res) => {
                    resolve(res);
                });
                // compressAccurately有多個(gè)參數(shù)時(shí)傳入對(duì)象
                imageConversion
                    .compressAccurately(file, {
                        size: 1024, //圖片大小壓縮到1024kb
                        width: 1280, //寬度壓縮到1280
                    })
                    .then((res) => {
                        resolve(res);
                    });
            });
        },
        //照片上傳成功
        fileUploadSuccess(res, file) {
            this.form.staffImg = res.data.dbPath;
            this.imageUrl = URL.createObjectURL(file.raw);
            this.rules.staffImg[0].required = false;
        },

原理就是寫一個(gè)假的紅色*號(hào),每次點(diǎn)擊查看的時(shí)候執(zhí)行 this.rules.staffImg[0].required = false;

關(guān)閉原有的非空驗(yàn)證,打開假的紅色*號(hào)

表單重置的時(shí)候執(zhí)行this.rules.staffImg[0].required = true;

上傳文件改變后執(zhí)行this.rules.staffImg[0].required = false;

圖片上傳成功后執(zhí)行this.rules.staffImg[0].required = false;

到此這篇關(guān)于vue elementUI 上傳非空驗(yàn)證的文章就介紹到這了,更多相關(guān)vue elementUI 非空驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • axios全局注冊(cè),設(shè)置token,以及全局設(shè)置url請(qǐng)求網(wǎng)段的方法

    axios全局注冊(cè),設(shè)置token,以及全局設(shè)置url請(qǐng)求網(wǎng)段的方法

    今天小編就為大家分享一篇axios全局注冊(cè),設(shè)置token,以及全局設(shè)置url請(qǐng)求網(wǎng)段的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • elementUI el-input 只能輸入正整數(shù)驗(yàn)證的操作方法

    elementUI el-input 只能輸入正整數(shù)驗(yàn)證的操作方法

    這篇文章主要介紹了elementUI el-input 只能輸入正整數(shù)驗(yàn)證,本文給大家詳細(xì)講解對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • 深入理解Vue transition源碼分析

    深入理解Vue transition源碼分析

    本篇文章主要介紹了深入理解Vue transition源碼分析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • vue數(shù)組對(duì)象排序的實(shí)現(xiàn)代碼

    vue數(shù)組對(duì)象排序的實(shí)現(xiàn)代碼

    這篇文章主要介紹了vue數(shù)組對(duì)象排序的實(shí)現(xiàn)代碼,這里整理了詳細(xì)的代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-06-06
  • 在vue3中使用icon圖標(biāo)的三種方案

    在vue3中使用icon圖標(biāo)的三種方案

    這篇文章主要介紹了三種使用icon的方案,分別是element-icon、svg-icon、@iconify/vue,三種方案通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • 詳解vite+ts快速搭建vue3項(xiàng)目以及介紹相關(guān)特性

    詳解vite+ts快速搭建vue3項(xiàng)目以及介紹相關(guān)特性

    這篇文章主要介紹了vite+ts快速搭建vue3項(xiàng)目以及介紹相關(guān)特性,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • VUE3中實(shí)現(xiàn)拖拽與縮放自定義看板vue-grid-layout詳解

    VUE3中實(shí)現(xiàn)拖拽與縮放自定義看板vue-grid-layout詳解

    想實(shí)現(xiàn)桌面自由拖拽布局的效果,找到了vue-grid-layout柵格布局插件,可以完美解決,下面這篇文章主要給大家介紹了關(guān)于VUE3中實(shí)現(xiàn)拖拽與縮放自定義看板vue-grid-layout的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Vue自定義指令簡(jiǎn)介和基本使用示例

    Vue自定義指令簡(jiǎn)介和基本使用示例

    同時(shí)Vue也支持讓開發(fā)者,自己注冊(cè)一些指令,這些指令被稱為自定義指令,每個(gè)指令都有自己各自獨(dú)立的功能,這篇文章主要介紹了Vue自定義指令簡(jiǎn)介和基本使用,需要的朋友可以參考
    2024-03-03
  • 淺談VUE uni-app 條件編碼和頁(yè)面布局

    淺談VUE uni-app 條件編碼和頁(yè)面布局

    這篇文章主要介紹了uni-app 的條件編碼和頁(yè)面布局,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • 在VUE中使用lodash的debounce和throttle操作

    在VUE中使用lodash的debounce和throttle操作

    這篇文章主要介紹了在VUE中使用lodash的debounce和throttle操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評(píng)論