zoukankan      html  css  js  c++  java
  • vue:自定义验证form表单中的数组

    vue:自定义验证form表单中的数组

    如图

     

    html写法:

    form元素: pictures

    添加图片上传框事件:addMealImage
    删除一个图片上传框事件:delMealImage

    div class="flex-row el-form-item-box"   style=" 100%;">
            <el-form-item label="餐食主图" prop="pictures"   style=" 100%;" :required="true">
              <el-col  style="margin-left: 10px; float: left;  100px;" v-for="(item, index) in form.pictures" :key="index">
                <el-upload
                  name="picFile"
                  ref="resumeRefs"
                  :headers="header"
                  class="avatar-uploader"
                  :action="baseURL + '/system/meal/upload/0/'+ mealId+'/'+index+''"
                  :show-file-list="false"
                  :auto-upload="true"
                  :on-success="handleAvatarSuccess"
                  :before-upload="beforeAvatarUpload"
                  :disabled="mealEdit">
                  <img v-if="form.pictures[index].mealImage" :src="form.pictures[index].mealImage" class="avatar">
                  <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                </el-upload>
                <span v-if="index == 0" class="add-date el-icon-circle-plus-outline" style="margin-left: 25px;" title="添加图片" @click="addMealImage"> </span>
                <span v-if="index > 0" class="add-date el-icon-remove-outline" style="margin-left: 25px;" title="删除图片" @click="delMealImage"> </span>
              </el-col>
            </el-form-item>
    
          </div>
    

      

    js部分

    表单部分:给pictures初始化一个数组

    // 表单参数
          form: {
            id: null,
            mealName: null,
            mealCode: null,
            mealPrice: null,
            mealValidityStart: null,
            mealValidityEnd: null,
            flightValidityStart: null,
            flightValidityEnd: null,
            mealContent: null,
            mealAirport: null,
            mealCompany: null,
            mealReceiveMail: null,
    
            mealReceiveMails: [],
            pictures:[{mealImageType: null, mealImage: null, id: null, index:null}], //上传图片
            delPictures: [],//删除的图片
          },
    

      

    rules部分:

      pictures: [
              {  type: "array", validator: validateMealPicture, required: true }
            ],
    

      

    自定义验证部分:

    validateMealPicture
    const validateMealPicture = (rule,value, callback)=>{
          //console.log(rule)
          //console.log(value)
          let item =  value.length>0?value[0]:null;
          if(item==null || (item!=null && item.id==null)){
            return callback(new Error("请至少上传一个图片"));
          }else{
            callback();
          }
    
        };
    

      

  • 相关阅读:
    Linux中Elasticsearch集群部署
    在.net core 项目中添加swagger支持
    ASP.NET Core 类库中取读配置文件
    Redis的服务安装步骤
    Lambda表达式多表连接的左连
    Angular7 学习资料
    Docker在eShopOnContainer项目中的使用方法
    绘图工具
    万能分页存储过程(SQL Server)
    为什么程序开发人员这么累?
  • 原文地址:https://www.cnblogs.com/achengmu/p/15744340.html
Copyright © 2011-2022 走看看