当前位置: 首页>后端>正文

vue elementui 使用记录

el-menu

el-menu的default-active属性支持默认选中项,切换时也会自动切换这个效果,然鹅,如果你直接访问不是默认选项的地址,就尴尬了;此时就需要动态选中默认项。
如果换成下面的写法就美滋滋啊,router属性还可以让页面直接跳转;$route.path与数据无关,而是当前页面的地址.

<el-menu :default-active="$route.path" router> 
<el-menu-item v-for="route in routes" :key="route.path" :index="route.path">{{route.name}}
</el-menu-item> 
</el-menu>
data () { 
return { 
routes: [ 
{path: '/home/link1', name: '页面1'}, 
{path: '/home/link2', name: '页面2'},
{path: '/home/link3', name: '页面3'}, 
{path: '/home/link4', name: '页面4'}, 
{path: '/home/link5', name: '页面5'} 
] 
} 
}

form

不得不说element form的验证很自由很舒服,写在form-item上可以,写在data里面rules也可以,巴拉巴拉;
不过验证一定要加入prop属性,prop需要绑定传入 Form 组件的 model 中的字段
记一个特殊的例子:动态增减表单项
这个例子的验证建议直接required写完事了。。

修改主题颜色

import ElementUI from 'element-ui'; 
import 'element-ui/lib/theme-chalk/index.css';

theme-chalk下的index.css就是我们使用的主题默认颜色了,我们的目的就是把它换掉。
在官网可以看到提供的两个做法;
如果仅替换主题色
推荐使用在线主题生成工具,切换一个颜色然后下载,解压之后,在项目目录下新建theme目录,放入压缩包的fonts目录和index.css。
然后在main.js中引入新的index.css,别忘了把默认的主题颜色删掉;

这样就算是完成了替换主题色。
如果需要自定义写颜色,那就仔细研究一下官网提供的做法。

预览图片

elementui自带的图片预览框架有点弱啊,虽然可以打开一组特定图,但是无法控制顺序等等。
单张图怎么预览呢?通过点击图片或者按钮或者其它的方式?
1,import

import ElImageViewer from 'element-ui/packages/image/src/image-viewer'

2,设置data为默认显示为false

showViewer: false, 
imgUrl: null

3,methods增加事件

openFile () { 
this.imgUrl = '图片地址' 
this.showViewer = true 
}, 
closeViewer () { 
this.showViewer = false 
}

4,template增加代码
<el-image-viewer v-if="showViewer" :on-close="closeViewer" :url-list="[imgUrl]"></el-image-viewer>
5,本来我以为这个方法只能预览单张图片,经过对引入文件的解读,发现可以使用:on-switch方法来处理图片组的翻动,此时:url-list=图片数组。

对这段方法有疑问的可以去看一下第一步引入的文件,参考了其内部自带的功能。

当一个页面有多个upload组件的时候,如何区分上传得到的结果来源。

如果是静态的,可以在on-change的时候写不同的事件,这没什么说的;如果是for出来的怎么办?on-change都是一样的。
有人说要去改源码,这有多坑?如果你打包给同事的时候,没有打入node_modules,如果你备份的时候没有备份node_modules。。。所有改源码不靠谱。
看教程那边,on-remove、on-change等事件返回的都是file和fileList,没有识别可以用到的关键字。用以下方法可以解决这个问题:第三个参数可以用来放你的标志,index,key都可以。

:on-change="(res,file)=>{return handleChange(res, file, index)}"

表单验证无效

如果B字段是否显示要根据A字段的结果来验证,可以使用 this.$refs.ruleForm.validateField('checkB') 的方法来触发绑定的验证。
在看同事代码的时候发现默认的validate方法没有生效,没发现逻辑有什么问题,最后是因为自定义的校验方法,有一项没有包含callback()。所以自定义的校验方法一定要包含callback()啊

自定义表单验证

自定义表单验证的时候,如果有几个参数用的是同一个方法,如何加上关键字的标记呢?
默认的自定义校验方法:

{ validator: checkAge, trigger: 'blur' }

带参数的校验方法(用一个箭头函数,带上一个关键字即可)

{ validator: (rule, value, callback) => {this.customMethod(rule, value, callback, yourKeyword)}, trigger: 'blur' }

select的value-key

如果绑定的model数据是一个object而不是字符串的时候,一定要加这个属性


https://www.xamrdz.com/backend/3tr1997447.html

相关文章: