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使用相关问题的更多相关文章

  1. [坑况]饿了么你是这样的前端——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/ ...

  2. Vue + Element UI项目初始化

    1.安装相关组件 1.1安装Node 检查本地是否安装node node -v 如果没有安装,从Node官网下载 1.2安装npm npm -v 如果没有安装:使用该指令安装: npm install ...

  3. element UI Cascader 级联选择器 编辑 修改 数组 路径 问题(转载)

    来源:https://segmentfault.com/a/1190000014827485 element UI的Cascader级联选择器编辑时 vue.js element-ui 2 eleme ...

  4. 【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 状态:解决(相关资料的方法对我没什么用) 解决 ...

  5. Vue + Element UI 实现权限管理系统 前端篇(十一):第三方图标库

    使用第三方图标库 用过Elment的同鞋都知道,Element UI提供的字体图符少之又少,实在是不够用啊,幸好现在有不少丰富的第三方图标库可用,引入也不会很麻烦. Font Awesome Font ...

  6. element ui table 导出excel表格

    https://blog.csdn.net/u010427666/article/details/79208145 vue2.0 + element UI 中 el-table 数据导出Excel1. ...

  7. Vue + Element UI 实现权限管理系统(第三方图标库)

    使用第三方图标库 用过Elment的同鞋都知道,Element UI提供的字体图符少之又少,实在是不够用啊,幸好现在有不少丰富的第三方图标库可用,引入也不会很麻烦. Font Awesome Font ...

  8. 基于 vue+element ui 的cdn网站(多页面,都是各种demo)

    前言:这个网站持续更新中...,有网上预览,github上也有源码,喜欢记得star哦,欢迎留言讨论. 网站地址:我的个人vue+element ui demo网站 github地址:yuleGH g ...

  9. 基于element UI 的上传插件

    为了不再重复的上传文件,做了一个统一选择文件和上传文件的 基于 element UI :http://element-cn.eleme.io 前端实现文件下载和拖拽上传 演示 用法 <uploa ...

  10. Element UI table组件源码分析

    本文章从如下图所示的最基本的table入手,分析table组件源代码.本人已经对table组件原来的源码进行削减,源码点击这里下载.本文只对重要的代码片段进行讲解,推荐下载代码把项目运行起来,跟着文章 ...

随机推荐

  1. f5添加多个vlan的方法

    1.方法一 方法二: F5不更改配置,核心添加路由 ip route 10.160.101.0 255.255.255.0 10.160.100.10

  2. Spring 事务、异步和循环依赖有什么关系?

    前言 在循环依赖中有一种循环依赖,就是自注入:自己依赖自己. 事务的自注入 在 Spring 自调用事务失效,你是怎么解决的? 有小伙伴提出可以自己注入自己来解决事务失效. 具体使用方式如下: @Sl ...

  3. NodeMCU学习笔记

    NodeMCU学习笔记 引脚连通 引脚 连通 D3 FLASH按键 D0 模组上的LED D4 芯片的LED FLASH按键 D3引脚已经与开发板上的FLASH按键开关连接 我们可以通过NodeMCU ...

  4. this.$nextTick( 回调函数 )的作用

    首先要明确几个概念 1.Vue的核心思想 数据驱动 和 组件化系统 2.同步和异步 在没有特殊情下,程序一般先执行同步代码,等待同步执行完之后,执行异步代码 下面进入正题,首先贴出程序片段: 在该段代 ...

  5. 看KubeEdge携手K8S,如何管理中国高速公路上的10万边缘节点

    摘要:为保证高速公路上门架系统的落地项目的成功落地,选择K8s和KubeEdge来进行整体的应用和边缘节点管理. 一.项目背景 本项目是在高速公路ETC联网和推动取消省界收费站的大前提下,门架系统的落 ...

  6. 2019牛客暑期多校训练营(第九场)E.All men are brothers(并查集+排列组合)

    题意:现在有n个集合 每个集合大小为1 现在你可以把集合合并m次 每次会告诉你哪个集合合并 让你输出每次从不同的四个集合里各选出四个的组合方案 思路:我们可以想到用并查集模拟集合的合并 对于方案数 我 ...

  7. 2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program(DFS计算图中所有环的长度)

    题目链接:https://codeforces.com/gym/102361/problem/F 题意 有 \(n\) 个点和 \(m\) 条边,每条边属于 \(0\) 或 \(1\) 个环,问去掉一 ...

  8. windows10上下载远程控制软件之后导致windows10亮度调节功能不能使用

    出现了通用即插即用监视器就可以了

  9. Gym 100796K Profact

    Alice is bored out of her mind by her math classes. She craves for something much more exciting. Tha ...

  10. 洛谷 P2880 [USACO07JAN]Balanced Lineup G (ST表模板)

    题意:给你一组数,询问\(q\)次,问所给区间内的最大值和最小值的差. 题解:经典RMQ问题,用st表维护两个数组分别记录最大值和最小值然后直接查询输出就好了 代码: int n,q; int a[N ...