前端学习(2638):读懂代码之登录页login.vue之ref和rules

<template><div class="login-wrap"><div class="ms-login"><div class="ms-title">后台管理系统</div><!--1定义参数类型 2定义路由规则 3使用ref去进行指向 --><el-form :model="param" :rules="rules" ref="login" label-width="0px" class="ms-content"><el-form-item prop="username"><el-input v-model="param.username" placeholder="username"><el-button slot="prepend" icon="el-icon-lx-people"></el-button></el-input></el-form-item><el-form-item prop="password"><el-inputtype="password"placeholder="password"v-model="param.password"@keyup.enter.native="submitForm()"><el-button slot="prepend" icon="el-icon-lx-lock"></el-button></el-input></el-form-item><div class="login-btn"><el-button type="primary" @click="submitForm()">登录</el-button></div><p class="login-tips">Tips : 用户名和密码随便填。</p></el-form></div></div>
</template><script>
export default {data: function() {return {param: {username: 'admin',password: '123123',},rules: {username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],password: [{ required: true, message: '请输入密码', trigger: 'blur' }],},};},methods: {submitForm() {this.$refs.login.validate(valid => {if (valid) {this.$message.success('登录成功');localStorage.setItem('ms_username', this.param.username);this.$router.push('/');} else {this.$message.error('请输入账号和密码');console.log('error submit!!');return false;}});},},
};
</script><style scoped>
.login-wrap {position: relative;width: 100%;height: 100%;background-image: url(../../assets/img/login-bg.jpg);background-size: 100%;
}
.ms-title {width: 100%;line-height: 50px;text-align: center;font-size: 20px;color: #fff;border-bottom: 1px solid #ddd;
}
.ms-login {position: absolute;left: 50%;top: 50%;width: 350px;margin: -190px 0 0 -175px;border-radius: 5px;background: rgba(255, 255, 255, 0.3);overflow: hidden;
}
.ms-content {padding: 30px 30px;
}
.login-btn {text-align: center;
}
.login-btn button {width: 100%;height: 36px;margin-bottom: 10px;
}
.login-tips {font-size: 12px;line-height: 30px;color: #fff;
}
</style>

第一点
rules 定义规则
第二点
rthis.$refs.login.validate
提交的时候进行表单验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415364.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongodb save和insert区别

mongodb的save和insert函数都可以向collection里插入数据&#xff0c;但两者是有两个区别&#xff1a; 一、使用save函数里&#xff0c;如果原来的对象不存在&#xff0c;那他们都可以向collection里插入数据&#xff0c;如果已经存在&#xff0c;save会调用update更新里面的记…

P1967 货车运输

P1967 货车运输最大生成树lca并查集 1 #include<iostream>2 #include<cstdio>3 #include<queue>4 #include<algorithm>5 #include<cmath>6 #include<ctime>7 #include<set>8 #include<map>9 #include<stack>10 #include…

前端学习(2640):懂代码之登录页login.vue存入用户信息

<template><div class"login-wrap"><div class"ms-login"><div class"ms-title">后台管理系统</div><!--1定义参数类型 2定义路由规则 3使用ref去进行指向 --><el-form :model"param" :rules&…

js 根据时间生成唯一订单号

一般做唯一编号的时候&#xff0c;可以使用guid或者uuid的包直接生成&#xff0c;但是我希望唯一编号能够反应生成的时间信息&#xff0c;所以就准备使用日期随机值来构造&#xff0c;代码如下&#xff1a; const tradeNo function () {const now new Date()const year now…

(转) 并发处理

1、使用事物 2、使用消息队列 可以基于例如MemcacheQ等这样的消息队列。 比如有100张票可供用户抢&#xff0c;那么就可以把这100张票放到缓存中&#xff0c;读写时不要加锁。 当并发量大的时候&#xff0c;可能有500人左右抢票成功&#xff0c;这样对于500后面的请求可以直接转…

js将字符串 YYMMDDHHmmss 转化为 date类型

微信支付的回调参数time_end为日期字符串。 需求&#xff1a;将20190523101156转化为转换为Date日期格式Thu May 23 2019 10:11:56 GMT0800 (中国标准时间) const str2date (dateString)> {const pattern /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/;return new Dat…

Android 自定义带图标Toast,工具方法,Toast自定义显示时间

带图标Toast工具方法1 public static void show(Context act, String strContent, int iResouce){try {Toast toast new Toast(act);View view LayoutInflater.from(act).inflate(R.layout.layout_dialog_toastok, null);TextView tvContent view.findViewById(R.id.content…

This relative module was not found ./cptable webpack

在使用xlsx库的时候遇到的报错。 This relative module was not found: * ./cptable in ./node_modules/xlsx-style/dist/cpexcel.js记录解决方法&#xff0c;我是使用webpack进行配置的。 在chainWebpack里面增加一行代码&#xff0c;重新编译&#xff0c;即可。 config.ext…

工作155:首页样式调整第二次

<el-card><h1 style"float: left;margin-top: 34px;margin-left: 32px;">我的订单</h1><el-button size"mini" style"float: right;margin-top: 14px;margin-right: 10px;" type"primary" click"ListClick…

关于CaciiEZ端口流量阀值报警的设置

作者:邓聪聪 环境&#xff1a;CactiEZ v10.1 为了更高效的发现问题&#xff0c;在非工作期间&#xff0c;公司的网络可能会出现一些故障&#xff0c;为了及时解决问题&#xff0c;所以做了一个流量监控&#xff0c;并以邮件的方式发送流量异常的端口&#xff0c;以便及时了解状…

微信开发 getUserInfo:fail tunneling socket could not be established, cause=connect ECONNREFUSED

微信开发过程中&#xff0c;突然遇到一个奇怪的问题&#xff1a; 解决办法&#xff1a; 找到开发工具中 “工具 - 设置 - 代理设置”&#xff0c;选择即可不使用任何代理。

glide工具类。加载显示原图片,显示圆角图片,gif图标显示

依赖 //支持gif 的控件 implementation pl.droidsonroids.gif:android-gif-drawable:1.2.1 工具方法 private void updateGifLoopOne(GifImageView gif) {try { // 3、动画启动说明 // a、场景GIF每换一次页面&#xff0c;重新动画一次&#xff0c;每个…

Socket常用语法与socketserver实例

1》Socket相关&#xff1a; 1>Socket Families(地址簇): socket.AF_UNIX   本机进程间通信 socket.AF_INET   IPV4  socket.AF_INET6   IPV6 2>Socket Types: socket.SOCK_STREAM   #for tcp socket.SOCK_DGRAM   #for udp  socket.SOCK_RAW …

重新记录一下微信后台的配置

1、打开开发的基本配置&#xff0c;成为开发者 2、启用开发者密码 3、看一下自己的公众号id 4、记录自己的AppID、AppSecret

vue2.0 如何自定义组件(vue组件的封装)

一、前言 之前的博客聊过 vue2.0和react的技术选型&#xff1b;聊过vue的axios封装和vuex使用。今天简单聊聊 vue 组件的封装。 vue 的ui框架现在是很多的&#xff0c;但是鉴于移动设备的复杂性&#xff0c;兼容性问题突出。像 Mint-UI 等说实话已经很不错了&#xff0c;但是坑…

又双叒叕 - 中国汉字的奇妙

四个字组成的汉字&#xff1a; 又双叒叕【zhuo】 屮艸芔茻【mǎng】 火炎焱燚【yi】 一二三亖【si】 土圭垚㙓【dui】 口吕品田【tian】 水沝淼㵘【man】 日昌晶【liu】 木林森【gua】 月朋朤【lang】 金鍂鑫鑫【繁体】【xin】

小程序 获取当前所在地理位置 城市 信息

需求&#xff1a;在小程序首页需要显示用户所在城市。 解决方案&#xff1a;使用wx.getLocation获取经纬度坐标&#xff0c;再使用微信小程序JavaScript SDK的地址逆解析方法reverseGeocoder&#xff0c;就可以完美搞定。 微信小程序JavaScript SDK官方地址 https://lbs.qq.c…

php用ajax方式实现四级联动

使用ajax方式实现了下简单的 四级联动&#xff0c; 数据库&#xff1a; 以下为前台代码&#xff1a; 1 <!DOCTYPE html>2 <html>3 <head>4 <title>5 四级联动6 </title>7 <meta charset"utf-8">8 <s…

前端学习(2641):懂代码之header表头页之控制全屏显示

<!-- 全屏显示 控制全屏显示第一步 --><div class"btn-fullscreen" click"handleFullScreen"><el-tooltip effect"dark" :content"fullscreen?取消全屏:全屏" placement"bottom"><i class"el-ic…