element动态校验

摘要:
newVal}},方法:{subm
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.12.0/lib/index.js"></script>
<div id="app">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  <el-form-item label="活动名称" prop="name">
    <el-input v-model="ruleForm.name"></el-input>
  </el-form-item>
  <el-form-item label="活动区域" prop="region">
    <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
      <el-option label="区域一" value="shanghai"></el-option>
      <el-option label="区域二" value="beijing"></el-option>
    </el-select>
  </el-form-item>
  <el-form-item label="活动时间" required>
    <el-col :span="11">
      <el-form-item prop="date1">
        <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.date1" style=" 100%;"></el-date-picker>
      </el-form-item>
    </el-col>
    <el-col class="line" :span="2">-</el-col>
    <el-col :span="11">
      <el-form-item prop="date2">
        <el-time-picker placeholder="选择时间" v-model="ruleForm.date2" style=" 100%;"></el-time-picker>
      </el-form-item>
    </el-col>
  </el-form-item>
  <el-form-item label="即时配送" prop="delivery">
    <el-switch v-model="ruleForm.delivery"></el-switch>
  </el-form-item>
  <el-form-item label="活动性质" prop="type">
    <el-checkbox-group v-model="ruleForm.type">
      <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
      <el-checkbox label="地推活动" name="type"></el-checkbox>
      <el-checkbox label="线下主题活动" name="type"></el-checkbox>
      <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
    </el-checkbox-group>
  </el-form-item>
  <el-form-item label="特殊资源" prop="resource">
    <el-radio-group v-model="ruleForm.resource">
      <el-radio label="线上品牌商赞助"></el-radio>
      <el-radio label="线下场地免费"></el-radio>
    </el-radio-group>
  </el-form-item>
  <el-form-item label="活动形式" prop="desc">
    <el-input type="textarea" v-model="ruleForm.desc"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
    <el-button @click="resetForm('ruleForm')">重置</el-button>
  </el-form-item>
</el-form>
</div>
var Main = {
    data() {
      return {
        ruleForm: {
          name: '',
          region: '',
          date1: '',
          date2: '',
          delivery: false,
          type: [],
          resource: '',
          desc: ''
        },
        rules: {
          name: [
            { required: true, message: '请输入活动名称', trigger: 'blur' },
            { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
          ],
          region: [
            { required: true, message: '请选择活动区域', trigger: 'change' }
          ],
          date1: [
            { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
          ],
          date2: [
            { type: 'date', required: true, message: '请选择时间', trigger: 'change' }
          ],
          type: [
            { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
          ],
          resource: [
            { required: true, message: '请选择活动资源', trigger: 'change' }
          ],
          desc: [
            { required: true, message: '请填写活动形式', trigger: 'blur' }
          ]
        }
      };
    },
  watch:{
//重点
    'ruleForm.delivery'(newVal){
      console.log(newVal)
      this.rules.name[0].required = !newVal
     }
  },
    methods: {
      submitForm(formName) {
        this.$refs[formName].validate((valid) => {
          if (valid) {
            alert('submit!');
          } else {
            console.log('error submit!!');
            return false;
          }
        });
      },
      resetForm(formName) {
        this.$refs[formName].resetFields();
      }
    }
  }
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

 https://codepen.io/knighthanfei/pen/GRKazzB?editors=1111

2种:

<ul class="invoice-num-list">
              <li
                v-for="(invoice, ind) in billInfoModel.invoiceLs"
                :key="`invoice_${ind}`"
                class="list-item">
                <div class="invoice-code">
                  <el-col :span="8">
                    <el-form-item
                      label="发票号码"
                      :prop="'invoiceLs.' + ind + '.inv'"
                      :rules="[{
                        required: false, message: '发票号码不能为空', trigger: 'blur'
                      }, {
                        pattern: '^[A-Za-z0-9]+$',
                        message: '请输入11位阿拉伯数字或字母',
                        trigger: 'blur'
                      }]">
                      <el-input
                        v-model="invoice.inv"
                        :disabled="isEdit"
                        maxlength="11"
                        placeholder="请填写发票号码"
                        clearable />
                    </el-form-item>
                  </el-col>
                  <el-col :span="8">
                    <span class="opt-btns">
                      <el-button
                        v-if="billInfoModel.invoiceLs.length > 1 && !isEdit"
                        type="text"
                        icon="el-icon-delete"
                        class="isdanger"
                        @click="deleteInvoceNum(ind)">删除</el-button>
                      <el-button
                        v-if="ind === billInfoModel.invoiceLs.length - 1 && !isEdit"
                        type="text"
                        icon="el-icon-plus"
                        @click="billInfoModel.invoiceLs.push({inv:''})">添加</el-button>
                    </span>
                  </el-col>
                </div>
              </li>
            </ul>

免责声明:文章转载自《element动态校验》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ES6 对象的扩展k8s集群如何暴露端口给外部访问下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[Selenium] CSS3 选择器

http://www.cnblogs.com/MasterMonkInTemple/category/564552.html 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。 "CSS" 列指示该属性是在哪个 CSS 版本中定义的。(CSS1、CSS2 还是 CSS3。) 选择器 例子 例子描述 CSS .class .intro 选...

spring mvc实现新增用户

spring mvc实现新增用户 1、先在展示页面(查询出来的结果页)添加一个连接<a href="http://t.zoukankan.com/add">添加</a> 2、在后台添加一个添加的方法,点击添加,是跳转到add.jsp页面,刚过去没数据,应该是get方法请求 @RequestMapping(value="/add",...

Element plus的tree组件实现单选和搜索功能

需求: Element plus的树组件实现单选和搜索功能。 效果: 实现: <!--element plus 树组件实现单选及搜索功能 --> <template> <div class="tree-radio"> <h3>Element plus 树组件实现单选及搜索功能<...

Netty5 HTTP协议栈浅析与实践

一、说在前面的话 前段时间,工作上需要做一个针对视频质量的统计分析系统,各端(PC端、移动端和 WEB端)将视频质量数据放在一个 HTTP 请求中上报到服务器,服务器对数据进行解析、分拣后从不同的维度做实时和离线分析。(ps:这种活儿本该由统计部门去做的,但由于各种原因落在了我头上,具体原因略过不讲……) 先用个“概念图”来描绘下整个系统的...

Django数据操作F和Q、model多对多操作、Django中间件、信号、读数据库里的数据实现分页

models.tb.objects.all().using('default'),根据using来指定在哪个库里查询,default是settings中配置的数据库的连接名称。 外话:django中引入现成数据库 Django引入外部数据库还是比较方便的,步骤如下 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,...

selenium显式等待的封装

显式等待不像隐式等待和强制等待一样,浪费时间,显式等待是指定某个条件,然后设置最长等待时间。如果在这个时间还没有找到元素,那么便会抛出异常。只有该条件触发,才执行后续代码,这个使用更灵活。 显式等待是一种智能的等待,但它只能应用于指定的元素,等待动态加载的Ajax元素 源码注解: 参数解释 driver:webdriver的实例对象 timeout:最长...