iview 踩坑之旅
公司重构管理系统,框架定了vue,UI在element和iview之间选,element样式被吐槽丑,于是选了iview,但是,,这个坑多啊。。。
废话少说,罗列了iview中容易出错或者懵逼的一些地方,希望后来的老哥们少费点头发。
#环境:vue-2.5, iview-3.0.1#
避免你浪费时间,先列出要点:
1,重置表单;
2,校验表单;
3, Table相关;
4,select相关。
1,重置表单
1)单独重置某一项:
|
1
2
3
4
5
|
this.$refs[name].fields.forEach(function (e) { if (e.prop == 'abc') { e.resetField() }}) |
2)全部重置:
|
1
|
this.$refs[name].resetFields(); |
2,校验表单
1)单独校验某一项:
|
1
|
this.$refs['formAdd'].validateField('xxx'); |
2)整个表单全部校验:
|
1
|
this.$refs[name].validate(callback); |
3)表单验证整数的规则:
|
1
2
3
4
5
6
|
ruleValidate: { day: [ { required: true, message: '请输入,必填', trigger: 'blur' }, { type: 'integer', min: 0, max: 60, message: '必须是介于0和60之间的整数', trigger: 'blur', transform: value => +value } ]} |
4) 自定义校验表单:
|
1
2
3
4
5
6
7
8
9
10
11
|
const validateTest = (rule, value, callback) => { if (value.length === 0) { return callback(new Error('请选择,必选')); } callback(); };// 在验证规则ruleValidate里添加test: [ {required: true, validator: validateTest, trigger: "blur"} ] |
更多详细规则可以查看async-validator。
3, Table相关
某项的内容不是单纯的文本,需要显示html或者转换状态时,有二种方法。
1)在columns数组中使用render:
|
1
2
3
4
5
6
7
8
9
|
{ title: '状态', align: 'left', key: 'status', render: (h, params) => { let type = params.row.status; if (type === 1) return h('div', 'ok'); return h('div', '不ok'); } } |
2)在columns数组中给该项添加type: 'html':
|
1
|
{ title: 'banner', align: 'center', key: 'banner', type: 'html' } |
|
1
2
3
4
5
6
7
|
list.map(item => { let str = ''; item.content.map(i => { str += '<p>' '+ i.title + '</p>'; }); item.content = str; }); |
4,select相关
|
1
|
<Select ref="select"></Select> |
1) 给select赋初始值,仅在 filterable="true" 时有效:
|
1
|
this.$refs.select.setQuery('abc'); |
某些版本的iview会导致下拉列表弹出,此时可以通过点击失焦,收起下拉列表:
|
1
|
this.$refs.tables.$el.click(); |
2) 清空单选项,仅在 clearable="true" 时有效:
|
1
|
this.$refs.select.clearSingleSelect(); |
3)手动清空select的值:
|
1
|
this.$refs.select.query = '' |
select有个坑,用remote-method远程过滤时,输入关键字得到列表,删除关键字时,每次删除都会请求一次,全部删完后不会发起请求,列表还缓存着最后一个关键字得到到数据。暂时没找到比较好办法。
好了,比较实用的都大概在这里了,后续如果有新的坑,会继续加在这里。
iview 踩坑之旅的更多相关文章
- 微信小程序之mpvue+iview踩坑之旅
因为之前参照微信的原生的文档写过一些小程序的demo,写的过程比较繁琐,后来出了美团的mpvue,可以直接使用vue开发,其他的不作对比,这篇文章记录一下踩坑之旅. 参照mpvue http://mp ...
- 我的微信小程序入门踩坑之旅
前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...
- vue+ vue-router + webpack 踩坑之旅
说是踩坑之旅 其实是最近在思考一些问题 然后想实现方案的时候,就慢慢的查到这些方案 老司机可以忽略下面的内容了 1)起因 考虑到数据分离的问题 因为server是express搭的 自然少 ...
- vue踩坑之旅 -- computed watch
vue踩坑之旅 -- computed watch 经常在使用vue初始化组件时,会报一些莫名其妙的错误,或者,数据明明有数据,确还是拿不到,这是多么痛苦而又令人忍不住抓耳挠腮,捶胸顿足啊 技术点 v ...
- Python踩坑之旅其一杀不死的Shell子进程
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 坑后扩展 1.4.1 扩展知识 1.4.1 技术关键字 1.5 填坑总结 1.1 踩坑案例 踩坑的程序是个常驻的Agent类管理进程 ...
- Python 踩坑之旅进程篇其三pgid是个什么鬼 (子进程\子孙进程无法kill 退出的解法)
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4.1 技术关键字 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 Github: https: ...
- [代码修订版] Python 踩坑之旅 [进程篇其四] 踩透 uid euid suid gid egid sgid的坑坑洼洼
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 技术关键字 1.5 坑后思考 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 代码示例: 公 ...
- CentOS7使用tar.gz包安装MySql的踩坑之旅
由于客户的CentOS服务器没有安装yum工具,只能通过下载tar.gz包安装mysql,于是跟着万能的百度开启了漫漫踩坑之旅: 1.下载mysql-5.6.33-linux-glibc2.5-x86 ...
- EasyTrader踩坑之旅总结
easytrader是用python写的可以调用主要券商完成自动化炒股的一个软件 ,但我用的是同花顺,在研究过程中,发现同花顺暂时调不通.后来搜索发现thstrade的源码作者说是easytrad ...
随机推荐
- bootstrap 学习 ---css样式学习
bootstrap 适用于响应式布局,移动设备优先的web项目 1.学习bootstrap需要引入bootstrap的css,jquery,bootstrap的js,注意:jquery文件必须在boo ...
- BZOJ3566 [SHOI2014]概率充电器 (树形DP&概率DP)
3566: [SHOI2014]概率充电器 Description 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品——概率充电器:“采用全新纳米级加工技术,实现元件与导线能否通电 ...
- 三角插值的 Fourier 系数推导
给定 $k$ 个互不相同的复数 $x_0,\cdots,x_{k-1}$,以及 $k$ 个复数$y_0,\cdots,y_{k-1}$.我们知道存在唯一的复系数 $k-1$ 次多项式$$\mathca ...
- 4.Redis持久化方案
1.1 RDB持久化 RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘. RDB是Redis默认采用的持久化方式. ...
- JavaScript 简介与语法
一.JavaScript简介 ).head里面 ).body里面 (在body内最为严谨) ).</html>之后 //程序上来要执行的部分 [2]三个常用对话框 alert()警告对话框 ...
- 科技报告|AD报告|DTIC|PB报告|STAR|ERA|NTIS|DTIC|DOE|EPA|NASA |JPL|
信息检索-科技报告是灰色文献获取渠道有限. 技术论文中因保密需要,会删除关键性技术. AD报告也产生较早,1951年开始出版.现由美国国防技术情报中心(DTIC:Defence Technical I ...
- IntelliJ IDEA 的便捷操作性
快捷键 说明 IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各个快捷键组合请认真对待.IntelliJ IDEA 本身的设计思维是提倡键盘优先于鼠标的,所以各种快捷键组合层出不 ...
- 升级mongodb数据库2.6.6到3.0.3,切换引擎,主从同步数据
只升级mongodb的版本极为简单,更新/替换 bin/目录下的可执行文件即可. debian和osx上的升级,按步骤来,没什么好说的. http://docs.mongodb.org/manual/ ...
- python--防止SQL注入
from pymysql import * def main(): # 创建Connextion连接 conn = connect(host='localhost', port=3306, user= ...
- reduced penetrance|COPE-PCG
生物医学大数据 Case study 由Human genome project提出之后,提出的精准医学.它的初衷是将数据standard后easy应用,我国重要重在疾病预警和疗效评价. 在疾病预警上 ...