zoukankan      html  css  js  c++  java
  • element动态校验

    
    
    <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>
  • 相关阅读:
    innodb下ibd文件组成
    redo在ACID中作用,及一些概念
    mysql innodb安装目录下文件介绍: 日志记录redu/undo log及临时表ibtmp1
    mysql innodb引擎独立表空间记录,表组成及表迁移
    Python之函数、递归、内置函数
    Python之列表、字典、集合
    Python之介绍、基本语法、流程控制
    CSS之Bootstrap(快速布局)
    Django之缓存
    python之class面向对象(进阶篇)
  • 原文地址:https://www.cnblogs.com/tangbuluo/p/11612373.html
Copyright © 2011-2022 走看看