详解element ui 添加自定义方法

 更新时间:2024年02月21日 11:14:08   作者:mole  
今天在修改 el-table 源码过程中遇到一个头大的问题,原本修改编译后,将 element的子目录lib下的文件复制到项目的响应目录里就可以了,但是这次总出问题,下面小编给大家分享element ui 添加自定义方法,感兴趣的朋友一起看看吧

element ui 添加自定义方法

今天在修改 el-table 源码过程中遇到一个头大的问题,原本修改编译后,将 element的子目录lib下的文件复制到项目的响应目录里就可以了,但是,这次不知为何,编译老是出问题,实在没有办法,我就直接修改项目中 node_modules 目录下的 lib 的文件。
为了找到正确的修改点,在代码中加入了以下代码,方便进入跟踪模式,知道进入 el-table 的代码的入口:

    debugger
    this.$refs.table.doLayout()

运行时,在单步执行 doLayout 方法后,就能知道 doLayout 的代码入口文件和位置,这样就可以在相同位置,插入自己的代码。
我需要实现的效果是通过代码来实现表格过滤的效果,即模拟点击列头选择某个过滤值实现表格过滤的效果。通过上述代码跟踪,了解到需要在element-ui.common.js文件中插入代码,具体代码如下:

    execFilter: function execFilter(column, filteredValue) {
      this.store.commit('filterChange', {
        column: column,
        values: filteredValue
      });
      this.store.updateAllSelected();
    },

上述代码中,为何通过 filterChange 来实现过滤,是通过关键字搜索 + 阅读代码分析得到。
在这之前,通过对 el-table 原本的过滤实现的代码进行跟踪,将 filterChange 方法的 column 和 fliteredValue 参数值进行截图保存,发现 column 不是 el-table-column,而是一个 javascript 对象,故通过对 el-table-column 对象的属性进行排查,发现 columnConfig 属性的值就是该方法所需数据,而 filteredValue 的值是一个包含过滤值的数组,为此,构建了如下调用代码:

    var column = this.$refs.companyColumn;
    var filteredValue = [this.$refs[this.refName][0].companyBriefName]
    this.$refs.table.execFilter(column.columnConfig, filteredValue)

经过测试,非常完美的解决了问题。

补充:

elementUI 事件添加自定义参数,以及子组件emit传参 父组件增加自定义参数

一、elementUI 事件添加自定义参数

@visible-change="val => dropDownOpen(val, 自定义参数) ,val为事件默认返回的参数

<el-dropdown size="small" trigger="hover" @visible-change="val => dropDownOpen(val, index)">

二、子组件emit传参 父组件增加自定义参数

情况:父组件循环子组件时,除子组件传出来的参数,还想要拿到循环的index

父组件:
<div v-for='(item,index) in list' :ket='index'>
<child @testFun='testFun'><child>
</div>
子组件:
<div @clicl='chilfFun'>测试数据<div>
js:
chilfFun(){
this,$emit('testFun','canshu')
}

解决:<child @testFun=‘e=》testFun(自定义的参数)’>

<div v-for='(item,index) in list' :ket='index'>
<child @testFun='e=》testFun(index)'><child>
</div>

到此这篇关于element ui 添加自定义方法的文章就介绍到这了,更多相关element ui 添加自定义内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue使用Clipboard.JS在h5页面中复制内容实例详解

    Vue使用Clipboard.JS在h5页面中复制内容实例详解

    在本篇文章里小编给大家整理了关于Vue使用Clipboard.JS在h5页面中复制内容以及相关知识点内容,需要的朋友们可以学习下。
    2019-09-09
  • WebPack配置vue多页面的技巧

    WebPack配置vue多页面的技巧

    这篇文章主要介绍了WebPack配置vue多页面的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • vue项目环境搭建 启动 移植操作示例及目录结构分析

    vue项目环境搭建 启动 移植操作示例及目录结构分析

    这篇文章主要介绍了vue项目环境搭建、启动、项目移植、项目目录结构分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • vue监听滚动事件实现滚动监听

    vue监听滚动事件实现滚动监听

    本文主要介绍了vue监听滚动事件实现滚动监听的相关资料。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Vue keep-alive实践总结(推荐)

    Vue keep-alive实践总结(推荐)

    本篇文章主要介绍了Vue keep-alive实践总结(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Vue实现表格中对数据进行转换、处理的方法

    Vue实现表格中对数据进行转换、处理的方法

    这篇文章主要介绍了Vue实现表格中对数据进行转换、处理的方法,需要的朋友可以参考下
    2018-09-09
  • 利用Vue3和Plotly.js创建交互式表格

    利用Vue3和Plotly.js创建交互式表格

    在数据分析和可视化领域,经常需要以表格的形式展示数据,Plotly.js 是一款功能强大的 JavaScript 库,不仅可以创建交互式图表,还可以动态生成 HTML 表格,本文给大家介绍了如何用Vue3和Plotly.js创建交互式表格,需要的朋友可以参考下
    2024-07-07
  • vue 动态创建组件的两种方法

    vue 动态创建组件的两种方法

    这篇文章主要介绍了vue 动态创建组件的两种方法,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2020-12-12
  • Vite项目中SVG雪碧图的实现

    Vite项目中SVG雪碧图的实现

    本文介绍了SVG雪碧图在前端开发中的应用,并提供了在Vite项目中使用vite-plugin-svg-icons插件的详细步骤,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2026-03-03
  • Vue.js devtool插件安装后无法使用的解决办法

    Vue.js devtool插件安装后无法使用的解决办法

    Vue.js devtool插件最近在开发人员中很火,这篇文章主要为大家详细介绍了Vue.js devtool插件安装后无法使用,出现提示“vue.js not detected”的解决办法
    2017-11-11

最新评论