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

vue elementUI 上傳非空驗證示例代碼

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

<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>
            // 表單校驗
            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("上傳進行改變", 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("上傳圖片過大!請上傳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有多個參數(shù)時傳入對象
                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;
        },

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

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

表單重置的時候執(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 上傳非空驗證的文章就介紹到這了,更多相關(guān)vue elementUI 非空驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

泰宁县| 安塞县| 峨边| 中西区| 自治县| 泰兴市| 巴南区| 贺州市| 长子县| 武安市| 海盐县| 乐陵市| 南江县| 元谋县| 兴隆县| 闽清县| 额尔古纳市| 阳泉市| 云林县| 额济纳旗| 前郭尔| 镇远县| 乐平市| 宁夏| 通化市| 榆中县| 南召县| 柏乡县| 阳东县| 江门市| 房产| 彭山县| 封丘县| 平谷区| 桃源县| 宁蒗| 景泰县| 平顶山市| 和龙市| 镇原县| 塘沽区|