美文网首页
vue下使用jqwidgets组件混合开发

vue下使用jqwidgets组件混合开发

作者: ly0985 | 来源:发表于2019-12-20 14:39 被阅读0次

jqxgrid组件下拉表头过滤自定义方案

主要提供一个在vue框架下操作dom节点,并且dom节点是vue组件生产的

1、创建一个vue组件

1.1、使用div创建一个面板,写一个ref,方便创建下拉dom

1.2、给一个类,这个类使用display:none;使用该组件之前,将这个组件隐藏,后续创建dom的时候删掉即可

1.3、创建组件,如果是antdesign的下拉组件,参考api的挂载方法,可以通过传

1.4、在组件的同级下写一个div兄弟元素,写一个id,将组件挂载到这个div下

  • 解决一旦刷新面板后,无法加载下拉的bug递挂载面板的id挂载到对应的位置,详细看最后

2、将jqx的表头修改成自定义过滤的方法

3、创建buildFilterPanel方法

3.1、声明变量接受this指针

3.2、创建文字,“行过滤条件:”,并添加到面板上

  • 这里是为了保证跟jqxgrid普通过滤保持一致

3.3、创建一个正常的div元素,将vue组件挂载到该div下

  • 最好给div一个id,这是因为下拉容易出现冒泡的问题,下拉面板别挂载在body下
  • 因为bug原因,参考1.4做调整
  • 这样当操作下拉面板的时候,导致filter过滤面板判断点击不是在该面板下,会将filter过滤面板收起
  • 另:如果要对多个表头进行自定义过滤,只使用一个方法,可以直接在datafield下进行判断,并决定挂载哪个vue组件

3.4、如果存在下拉的情况下,进行冒泡的阻止

  • 如果存在下拉,一般是需要阻止冒泡的,需要3.3的配合,同时要将该点击的区域挂载到div下,根据3.3创建的div的id
//阻止冒泡事件
divContainer.addEventListener("click", function(e) {
    window.event ? window.event.cancelBubble = true : e.stopPropagation();
    return false;
}, false)

3.5、创建底部的两个按钮,过滤和清除

  • 参考官方文档进行添加即可
  • 注意修改面板和获取的值

4、如果使用antdesign的下拉组件,参考select组件的getPopupContainer属性

4.1、找到多次封装的组件(主要是找到使用<a-select></a-select>这个组件的位置)

4.2、添加 :getPopupContainer ="getPopupContainer" 属性

4.3、接受父组件传的参数,如docid

  • props接受这个参数,给一个默认值
  • 然后判断docid是否存在,如果docid等于给定的默认值,则挂载到body下
  • 否则挂载到docid上
  • 代码如下:
getPopupContainer(){
    if(this.docid =="null"){
        return document.body
    }
    return document.getElementById(this.docid)
}

相关文章

  • vue下使用jqwidgets组件混合开发

    jqxgrid组件下拉表头过滤自定义方案 主要提供一个在vue框架下操作dom节点,并且dom节点是vue组件生产...

  • 12.混合模式 Mixin

    1 基础 混合是一种灵活的分布式复用 Vue 组件的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有...

  • Vue现代化使用方法(三)

    混合 组件系统是Vue的核心,如何合理的规划组件,是我们在开发中需要深入思考的问题,我个人习惯把一些组件使用逻辑和...

  • Vue(三)基础,v-if,mixins(混合)等...

    混合 组件系统是Vue的核心,如何合理的规划组件,是我们在开发中需要深入思考的问题,我个人习惯把一些组件使用逻辑和...

  • 五、Vue生态介绍

    一、Vue组件库Vue组件库是使用Vue框架开发的组件,一般包含着开发者可以直接使用的基础组件:表单、弹窗、表格等...

  • vue文档集合

    Vue2使用笔记3--父子组件的通信Vue 2.0开发实践(组件间通讯)Event Bus 在Vue中的使用vue...

  • Github 上 基于 Vue 的 12 个开源且优秀的 UI

    越来越多的公司开始使用 Vue 开发各种项目, Vue 项目是组件化开发,在开发工程师使用各种各样的组件,例如...

  • Vue2.x开发饿了么项目(header部分)

    header组件开发 数据之间的传递 App.vue 引入组件,App.vue 中注册组件,使用组件时 要记得传...

  • Vue mixin(混合)笔记

    Vue mixins(混合) 用途 为组件定义可复用的方法,可以在mixin对象里定义组件的任何属性,在组件使用m...

  • Vue/组件

    Vue/组件 创建组件 单独声明一个Vue.component,使用只需要在Vue实例下使用定义的组件名在组件中d...

网友评论

      本文标题:vue下使用jqwidgets组件混合开发

      本文链接:https://www.haomeiwen.com/subject/cqcinctx.html