最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 动态实现elementui不同用户el-form中的输入框el-input校验项不同

    正文概述 掘金(水冗水孚)   2021-02-18   1048

    问题描述

    关于输入框校验这个问题,其实是老生常谈的问题。相关的工具包有很多,如果我们使用饿了么UI,也可以用el-form中的简单的校验。一般来说如果使用elementui的话,就大概率是做后台管理系统的,说道后台管理系统,就要说道权限问题。即:不同的用户看到的、可操作的不同。后台管理系统的权限问题本篇不做赘述。主要说其中一个小场景:不同的用户登录这个系统后,都会看到同样的el-form表单,但是必填项却不同 废话不多说 上效果图

    用户一看到的

    年龄和家乡必填项 动态实现elementui不同用户el-form中的输入框el-input校验项不同

    用户二看到的

    技能和梦想必填项 动态实现elementui不同用户el-form中的输入框el-input校验项不同

    实现代码

    html代码图示 动态实现elementui不同用户el-form中的输入框el-input校验项不同 html代码

    <template>
      <div id="app">
        <el-form
          :model="ruleForm" :rules="rules"
          ref="ruleForm" label-width="100px"
        >
          <el-row>
            <el-col :span="8">
              <el-form-item label="姓名">
                <el-input v-model="ruleForm.name"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="年龄" :prop="userOne.age"> <!-- 用户一的必填项单独配置 -->
                <el-input v-model="ruleForm.age"></el-input> 
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="家乡" :prop="userOne.home"> <!-- 用户一的必填项单独配置 -->
                <el-input v-model="ruleForm.home"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="8">
              <el-form-item label="爱好">
                <el-input v-model="ruleForm.like"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="技能" :prop="userTwo.skill"> <!-- 用户二的必填项单独配置 -->
                <el-input v-model="ruleForm.skill"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item label="梦想" :prop="userTwo.dream"> <!-- 用户二的必填项单独配置 -->
                <el-input v-model="ruleForm.dream"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
        </el-form>
        <div class="btn">
          <el-button type="primary" @click="onSubmit('ruleForm')">提交表单</el-button>
        </div>
      </div>
    </template>
    

    js部分

    <script>
    export default {
      name: "app",
      data() {
        return {
          ruleForm: {
            name: "",
            age:"",
            home:"",
            like:"",
            skill:"",
            dream:""
          },
          // 第一步 与el-form-item中的prop校验谁对应才能去做控制,全部配置一下
          userOne:{
            age:"age",
            home:"home"
          },
          // 第二步,不同的用户角色都要与之对应 只保留登录用户的配置,未登录用户的配置清空
          userTwo:{
            skill:"skill",
            dream:"dream"
          },
          // 第三步,但是所有的校验规则都要提前写上
          rules: {
            age: [{ required: true, message: "请填写年龄", trigger: "blur" }],
            home: [{ required: true, message: "请填写籍贯", trigger: "blur" }],
            skill: [{ required: true, message: "请填写技能", trigger: "blur" }],
            dream: [{ required: true, message: "请填写梦想", trigger: "blur" }],
          },
        };
      },
      mounted() {
        /*
          第四步:
              假设我们在用户登录的时候把用户的身份标识存到sessionStorage中去了。那么在对应页面初始加载的时候
              我们就就从sessionStoarge取出来对应用户身份标识,看一下是哪个用户,不同的用户,就让el-form里的
              el-form-item上的prop对应呈现和置为空。但是校验规则必须全部写上,做到呈现谁,就校验谁
              比如这样的语句 let wihchUser = sessionStorage.getItem("whichUser")
        */ 
       	
        /*这里模拟不同用户*/ 
        // let wihchUser = "userOne"
        let wihchUser = "userTwo"
        
        if(wihchUser == "userOne"){
          // 非此用户的清空,此用户的留着即可
          this.userTwo = ""
        }else if(wihchUser == "userTwo"){
          this.userOne = ""
        }
      },
      methods: {
        onSubmit(formName) {
          this.$refs[formName].validate((valid) => {
            if (valid) {
              console.log("提交表单");
            } else {
              console.log("有必填项未填写");
              return false;
            }
          });
        },
      },
    };
    </script>
    

    总结

    最终效果就是不同用户不同的必填项未填写,就会进行不同的校验和提示


    起源地下载网 » 动态实现elementui不同用户el-form中的输入框el-input校验项不同

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元