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 ...
随机推荐
- 扩展 ajaxupload.js ,支持客户端判断上传文件的大小
onSubmit: function(file, extension){}, 修改为 onSubmit: function(file, extension, size){}, if (! (setti ...
- LinkedList源码剖析
LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈.队列和双端队列来使用. LinkedList同样是非线程安全 ...
- Docker部署Python爬虫项目
1) 首先安装docker: # 用 yum 安装并启动 yum install docker -y && systemctl start docker 2) 下载自定义镜像需要用到的 ...
- PCIe的事务传输层的处理(TLP)
主要从以下几个方面解决: 1.TLP基本的概念: 2.寻址定位与路由导向 3.请求和响应机制 4.虚拟通道机制 5.数据完整性 6.i/o,memory,configuration,message r ...
- ffmpeg android移植
CMake语法简介(androidstudio中利用CMake开发NDK): http://blog.csdn.net/u013718120/article/details/62883711FFmpe ...
- 求最长公共子序列-DP问题
Longest common subsequence problem The longest common subsequence (LCS) problem is the problem of fi ...
- babel-loader的原理
本文转载自默语的博客. Babel包的构成 核心包 babel-core:是babel转译器本身,提供转译的API,例如babel.transform等,webpack的babel-loader就是调 ...
- JavaIO 流(1)IO流介绍
IO流定义: 流的本质是一组单向有序,分起始和终止的数据传输过程.需要导入import java.io.* IO流分类: 按数据类型分为:字节流和字符流 字节流: 按字节进行读取(可以处理任意类型数据 ...
- process.env
官方: process.env属性返回一个包含用户环境信息的对象.
- 从一道网易面试题浅谈 Tagged Pointer - darcy_tang 的博客
前言 这篇博客九月就想写了,因为赶项目拖了到现在,抓住17年尾巴写吧~ 正文 上次看了一篇 <从一道网易面试题浅谈OC线程安全> 的博客,主要内容是: 作者去网易面试,面试官出了一道面试题 ...