Element-UI使用相关问题
1.如何修改el-dialog的样式?
要修改dialog的样式不能直接在<style scoped>中修改,这样修改后不会生效。做法是把scoped去掉,然后在dialog标签上自定义一个class,最好不要和其他的class同名,然后通过此class选择器再去修改里面的相关样式即可。
<template>
<el-dialog
title="信息"
:visible.sync="dialogFormVisible"
width="60%"
class="my-info-dialog"> 我是弹框 </el-dialog>
</template>
<style>
.my-info-dialog .el-dialog__body {
padding: 0px;
}
</style>
上例是修改弹框中内容距离标题的距离。
2.表单中el-select和el-input的长度不一致?
当他们一起使用时,一般select长度是默认的,会比input短,只需要设置其宽度是100%即可。
.el-form-item .el-select {
width: 100%;
}
3.el-table使用checkbox时,获取选中数据的id?
使用checkbox选中时有一个触发事件,那么触发事件可以调用下面的方法:
//多选框选中事件
handleSelectionChange(val) {
this.multipleSelection = []
//val是选中的数据的数组
val.forEach(item => {
const id = item.id
//判断数组中是否包含某个值
if (this.multipleSelection.indexOf(id) == -1) {
this.multipleSelection.push(id)
}
})
}
5.表单及行内元素验证
5.1表单及验证
<template>
<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 v-for="item in regionOption" :label="item.label" :value="item.value" :key="item.value">
</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="width: 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="width: 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="resource">
<el-radio-group v-model="ruleForm.resource">
<el-radio :label="1">线上品牌</el-radio>
<el-radio :label="2">线下场地</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 label="参与人数" prop="person">
<el-input v-model.number="ruleForm.person"></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>
</template> <script>
export default {
name: '',
data() {
//自定义验证规则
var validatePerson = (rule, value, callback) => {
if (value == '' || value == null) {
callback(new Error('请输入参与人数'));
} else {
if (!Number.isInteger(value)) {
callback(new Error('参与人数只能是整数'));
}
callback();
}
}
return {
ruleForm: {},
regionOption: [
{
label: '上海',
value: 0,
},
{
label: '北京',
value: 1,
},
{
label: '广州',
value: 2,
}
],
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' }
],
resource: [
{ required: true, message: '请选择活动资源', trigger: 'change' }
],
desc: [
{ required: true, message: '请填写活动形式', trigger: 'blur' }
],
person: [
{ required: true, validator: validatePerson, trigger: 'blur' }
]
}
}
},
methods: {
//表单提交验证
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
console.log('已通过验证')
console.log(this.ruleForm)
}
});
},
//清空输入框
resetForm(formName) {
this.$refs[formName].resetFields();
}
}
}
</script> <style scoped>
.demo-ruleForm {
width: 500px;
}
</style>
以上的代码中包含了表单默认的验证和自定义的验证,model必须存在,它表示表单的内容存在哪个对象中。另外,对应el-form-item中,需要验证里面嵌套的输入框,外面使用required表示必填,里面再使用el-form-item和prop属性验证即可,上述的活动时间是个很好的例子。
5.2验证扩展
除了上述的方法指定字段为必填项外,还可以根据条件来控制某个字段是否为必填字段。
<template>
<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="name2" :rules="isNeed?rules.name2:[]">
<el-input v-model="ruleForm.name2"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')">保存</el-button>
<el-button @click="isNeed = true">必填</el-button>
<el-button @click="isNeed = false">非必填</el-button>
</el-form-item>
</el-form>
</template> <script>
export default {
name: '',
data() {
return {
isNeed: true,
ruleForm: {},
rules: {
name: [{
required: true,
message: '必填项不能为空',
trigger: 'blur'
}],
name2: [{
required: true,
message: '动态必填项不能为空',
trigger: 'blur'
}],
}
}
},
methods: {
//表单提交验证
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
console.log('已通过验证')
console.log(this.ruleForm)
}
});
},
}
}
</script>
<style>
</style>
上述在需要动态验证的字段上加上rules属性,当条件为真时就进行指定的验证,条件为假时就是空数组即不进行验证。对于那种不同的条件必填项不同的情况非常的适用。
5.3清除表单验证
需要补充一点,表单的验证也是可以清空的,它有自带的清除方法:
this.$nextTick(() =>{
this.$refs['ruleForm'].clearValidate()
})
6.在el-dialog中使用ref找不到元素?
当在el-aidlog中给某个标签使用ref属性后,获取时总是显示undefined,原因是在获取时el-dialog还未渲染完成。因此可使用nextTick中再获取。
this.$nextTick(() => {
this.$refs['image-upload'].showFileList()
})
7.el-input输入框值输入无显示怎么解决?
有时候el-input由于嵌套的层级比较多,数据双向绑定无效。有两种解决方案,一是减少层级的嵌套,这对于必须嵌套多层的页面来说,无法解决。
第二种方法:在嵌套的无法进行动态绑定的页面的输入框上添加一个input事件,在input执行的方法中强制刷新数据:
<template>
<el-form :model="ruleForm" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="必填项" prop="name">
<el-input v-model="ruleForm.name" @input="inputChange"></el-input>
</el-form-item>
</el-form>
</template> <script>
export default {
name: '',
data() {
return {
ruleForm: {},
}
},
methods: {
inputChange(e) {
//强制刷新
this.$forceUpdate()
}
}
}
</script>
<style>
</style>
Element-UI使用相关问题的更多相关文章
- [坑况]饿了么你是这样的前端——vue+element ui 【this dependency was not found:'element-ui/lib/theme-chalk/index.css'】
element ui 坑况:今日pull代码,潇洒npm run dev ,被告知:this dependency was not found:'element-ui/lib/theme-chalk/ ...
- Vue + Element UI项目初始化
1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...
- element UI Cascader 级联选择器 编辑 修改 数组 路径 问题(转载)
来源:https://segmentfault.com/a/1190000014827485 element UI的Cascader级联选择器编辑时 vue.js element-ui 2 eleme ...
- 【vue-waring】element UI 由版本1.4.12 升级到element-ui@2.0.10
遇到的问题:element UI 由版本1.4.12 升级到element-ui@2.0.10 cnpm run dev 运行后的waring 状态:解决(相关资料的方法对我没什么用) 解决 ...
- Vue + Element UI 实现权限管理系统 前端篇(十一):第三方图标库
使用第三方图标库 用过Elment的同鞋都知道,Element UI提供的字体图符少之又少,实在是不够用啊,幸好现在有不少丰富的第三方图标库可用,引入也不会很麻烦. Font Awesome Font ...
- element ui table 导出excel表格
https://blog.csdn.net/u010427666/article/details/79208145 vue2.0 + element UI 中 el-table 数据导出Excel1. ...
- Vue + Element UI 实现权限管理系统(第三方图标库)
使用第三方图标库 用过Elment的同鞋都知道,Element UI提供的字体图符少之又少,实在是不够用啊,幸好现在有不少丰富的第三方图标库可用,引入也不会很麻烦. Font Awesome Font ...
- 基于 vue+element ui 的cdn网站(多页面,都是各种demo)
前言:这个网站持续更新中...,有网上预览,github上也有源码,喜欢记得star哦,欢迎留言讨论. 网站地址:我的个人vue+element ui demo网站 github地址:yuleGH g ...
- 基于element UI 的上传插件
为了不再重复的上传文件,做了一个统一选择文件和上传文件的 基于 element UI :http://element-cn.eleme.io 前端实现文件下载和拖拽上传 演示 用法 <uploa ...
- Element UI table组件源码分析
本文章从如下图所示的最基本的table入手,分析table组件源代码.本人已经对table组件原来的源码进行削减,源码点击这里下载.本文只对重要的代码片段进行讲解,推荐下载代码把项目运行起来,跟着文章 ...
随机推荐
- HTML字体
字体相关的样式 color 用来设置字体颜色 font-size 字体的大小 和font-size相关的单位 em 相当于当前元素的一个font-size rem 相当于根元素的一个font-size ...
- PHP版本Non Thread Safe和Thread Safe如何选择?区别是什么?
PHP版本分为Non Thread Safe和Thread Safe,Non Thread Safe是指非线程安全,Thread Safe是指线程安全,区别是什么?如何选择? Non Thread S ...
- Flink-v1.12官方网站翻译-P027-State Schema Evolution
状态方案的演变 Apache Flink流媒体应用通常被设计为无限期或长时间运行.与所有长期运行的服务一样,应用程序需要更新以适应不断变化的需求.这对于应用程序所针对的数据模式也是一样的,它们会随着应 ...
- hdu2546 饭卡
Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负) ...
- 一文弄懂使用Jmeter来进行性能测试
该文章是基于上一次文章的 软件测试漫谈(web测试,自动化测试,Jmeter) 的续篇, 主要是详细讲解 Jmeter 的入门教程. 因为上次的文章只是简单地讲解了 Jmeter 的使用和一些概念,所 ...
- kafka消息队列、环境搭建与使用(.net framework)
一:kafka介绍 kafka(官网地址:http://kafka.apache.org)是一种高吞吐量的分布式发布订阅的消息队列系统,具有高性能和高吞吐率. 1.1 术语介绍 BrokerKafka ...
- CF1462-E1. Close Tuples (easy version)
题意: 给出一个由n个数字组成的数组,先让你找出符合下列条件的子集的数量: 每个子集包含的数字个数为m = 3 这三个数字中的最大值减去最小值不超过k = 2 思路: 首先对给出的数组进行排序,现在假 ...
- httprunner(9)运行测试用例的方式总结
前言 用过pytest的小伙伴都知道,pytest的运行方式是非常丰富的,可以说是你想怎么运行怎么运行,想运行哪些运行哪些,那httprunner是否同样可以呢? 运行用例的各种方式 运行指定路径的用 ...
- 国产网络测试仪MiniSMB - 如何配置VLAN数据流
国产网络测试仪MiniSMB(www.minismb.com)是复刻smartbits的IP网络性能测试工具,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此以太 ...
- 2021-2-17:Java HashMap 的中 key 的哈希值是如何计算的,为何这么计算?
首先,我们知道 HashMap 的底层实现是开放地址法 + 链地址法的方式来实现. 即数组 + 链表的实现方式,通过计算哈希值,找到数组对应的位置,如果已存在元素,就加到这个位置的链表上.在 Java ...