Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 383|回复: 0

初学vue 在做项目时遇到的问题与解决办法(使用element组件)(二)

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-5-10 17:44:39 | 显示全部楼层 |阅读模式
    1. 表格每行里都有按钮
      <el-table-column prop="option" label="操作" align="center" >
           <template slot-scope="scope">
               <el-button size="mini" plain @click="del(scope.$index,scope.row)">删除</el-button>
                <el-button size="mini" plain @click="[edit(scope.$index,scope.row),editVisible =true]">修改</el-button>
            </template>
      </el-table-column>
      View Code

      单击删除按钮时获取本行的id: del(index, row) { alert(row.id) } 

    2. element 的表单一行显示多个标签

      1). :inline="true"
       <el-form :inline="true" :model="seach" :label-width="labelwidth"> 
      2).  使用el-row el-col去分割
      <el-form  :model="ruleForm" >
          <el-row type="flex" class="row-bg">
             <el-col :span="12">
                <el-form-item label="签约企业名称" prop="ep_name">
                    <el-input style="width:16em" v-model="ruleForm.ep_name"></el-input>
                 </el-form-item>
              </el-col>
                 <el-form-item label="签约企业简称" prop="ep_abbreviation">
                      <el-input style="width:16em" v-model="ruleForm.ep_abbreviation"></el-input>
                  </el-form-item>
           </el-row>
      </el-form>
      View Code
    3. 表单验证规则
      查看文档:https://blog.csdn.net/weixin_42018790/article/details/80762149
      1). el-form增加 :rules="rules"
      2).  el-form-item 中的label增加属性 prop="名称"
      3).  data中定义rules:{}
      例子:
      <el-form ref="form" :rules="rules" :model="form" label-width="300px">
        <el-form-item label="发货人电话" prop="phone">
          <el-input class="inp" v-model="form.phone"></el-input>
          </el-form-item>
        <el-form-item label="发货地址:" prop="address">
          <el-input class="inp" v-model="form.address" ></el-input>
          <el-button type="primary"@click="onSubmit('form')">常用地址</el-button>
         </el-form-item>
       </el-form>
      vue html代码
      <script>
      export default {
        data() {
       // 此处自定义校验手机号码js逻辑
          var phoneReg = /^[1][3,4,5,7,8][0-9]{9}$/
          var validatePhone = (rule, value, callback) => {
            if (!value) {
              return callback(new Error('号码不能为空!!'))
            }
            setTimeout(() => {
              if (!phoneReg.test(value)) {
                callback(new Error('格式有误'))
              } else {
                callback()
              }
            }, 1000)
      }
      },
          return {
            form: {
              phone:'',
              address: '',
            },
            // 校验规则
            rules: {
       // 校验手机号码,主要通过validator来指定验证器名称
              phone: [{ required: true, validator: validatePhone, trigger: 'blur' }],
              address: [
              { required: true, //是否必填
                message: '地址不能为空', //规则
                trigger: 'blur'  //何事件触发
              },
              //可以设置双重验证标准
              { min: 3, max: 5,  message: '长度在 3 到 5 个字符', }
            ]
            }
          }
        }
      
      </script>
      Vue js 代码
    4. 计算属性,依赖发生变化时,重新计算computed:
      <el-form-item label="单价:"  prop="price" >
             <el-input v-model="addform.price" type="number" placeholder="请输入单价" auto-complete="off" class="widc" ></el-input>
       </el-form-item>
      <el-form-item label="数量:"  prop="number" >
             <el-input v-model="addform.number" type="number" placeholder="请输入数量" auto-complete="off" class="widc" ></el-input>
      </el-form-item>
      <el-form-item label="总金额:"  prop="sum" >
             <div v-model="addform.countNum" class="border" ><span style="margin-left: 10%">{{countNum}}</span></div>
      </el-form-item>
      vue html代码
      // 计算总金额
          computed:{
            countNum:function(addform){
              let countNum=Number(this.addform.price) * Number(this.addform.number)
              return countNum
            }
          },
      vue JavaScript代码
    5. 将内容滚动到指定坐标
       window.scrollTo(xpos,ypos);
    6. element ui组件的开始时间-结束时间验证
      <el-date-picker  v-model="seach.before" type="date" placeholder="开始时间"  value-format="yyyy-MM-dd" class="wida" :picker-options="pickerBeginDateBefore"  @change="changeTime">
      </el-date-picker>
          <span class="zhi"></span>
      <el-date-picker   v-model="seach.after" type="date" placeholder="结束时间"value-format="yyyy-MM-dd" class="wida" :picker-options="pickerBeginDateAfter">
      </el-date-picker>
      template中
      seach:{
        before:'',
        after:'',
      },
        // 开始时间不大于结束时间
              // 开始时间
              pickerBeginDateBefore: {
                disabledDate: (time) => {
                  let beginDateVal = this.seach.after;
                  if (beginDateVal) {
                    return time.getTime() > beginDateVal;
                  }
                }
              },
              // 结束时间
              pickerBeginDateAfter: {
                disabledDate: (time) => {
                  let beginDateVal = this.seach.before;
                  if (beginDateVal) {
                    return time.getTime() < beginDateVal;
                  }
                }
              },
      return  中
      //选择开始时间,清空结束时间
            changeTime(date){
              // this.seach.before="";
              // console.log(this.seach.before)
              this.pickerBeginDateAfter={
                disabledDate(time) {  //开始时间-结束时间
                  return (time.getTime() < new Date(date).getTime());
                }
              }
            },
      methods 中

       

    7. element表格不设置行宽的时候会自适应显示
    8. 页面一加载的时候执行方法要在created中调用:
      created:function(){
            this.getTableData();/*调用的方法*/
      },
      View Code
    9. v-if 和v-show区别:
      通俗说:用法一样,意思不一样
      v-if就是动态添加/删除,是真时的渲染,为true时才编译
      v-show就是显示/隐藏,刚开始的时候就编译了,只是被保留下来,改变了css的display属性值
    10. element 表头单击事件
       使用element.ui之后 @click="" 无法对表头等元素添加点击事件,应该是@click.native=""
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-19 08:30 , Processed in 0.075120 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表