返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue基于Element-ui实现表格弹窗组件
  • 608
分享到

Vue基于Element-ui实现表格弹窗组件

2024-04-02 19:04:59 608人浏览 八月长安
摘要

本文实例为大家分享了Vue基于Element-ui实现表格弹窗组件的具体代码,供大家参考,具体内容如下 效果图 使用方式 acTable1 () {   this.$modalTa

本文实例为大家分享了Vue基于Element-ui实现表格弹窗组件的具体代码,供大家参考,具体内容如下

效果图

使用方式

acTable1 () {
  this.$modalTable({
    title: "表格一",
    tableData: [{
      date: '2016-05-02',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1518 弄'
    }, {
      date: '2016-05-04',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1517 弄'
    }, {
      date: '2016-05-01',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1519 弄'
    }, {
      date: '2016-05-03',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1516 弄'
    }],
    tableColumn: [
      {
        prop: "date",
        label: "日期",
        width: "180"
      },
      {
        prop: "name",
        label: "姓名",
      },
      {
        prop: "address",
        label: "地址",
      }
    ]
  })
},
acTable2 () {
  this.$modalTable({
    title: "表格二",
    tableData: [],
    tableColumn: [
      {
        prop: "date",
        label: "日期",
        width: "180"
      },
      {
        prop: "name",
        label: "姓名",
      },
      {
        prop: "address",
        label: "地址",
      }
    ]
  })
},
acTable3 () {
  this.$modalTable({
    title: "表格三",
    tableData: [{
      date: '2016-05-02',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1518 弄'
    }, {
      date: '2016-05-04',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1517 弄'
    }, {
      date: '2016-05-01',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1519 弄'
    }, {
      date: '2016-05-03',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1516 弄'
    }],
    tableColumn: [
      {
        prop: "name",
        label: "姓名",
      },
      {
        prop: "date",
        label: "日期",
      },
      {
        prop: "address",
        label: "地址",
      }
    ]
  })
},

1、创建modalTable.vue文件

将变量放在data中,正常开发即可,后续会通过别的方式将数据传入组件data中。

<template>
  <el-dialog ref="dialog"
             :title="title"
             :visible.sync="visible"
             width="30%"
             :before-close="beforeClose">
    <el-table :data="tableData"
              style="width: 100%">
      <el-table-column v-for="(item,index) in tableColumn"
                       :key="index"
                       :prop="item.prop"
                       :label="item.label"
                       :width="item.width">
      </el-table-column>
    </el-table>
    <span slot="footer"
          class="dialog-footer">
      <el-button @click="closeDialog">关闭</el-button>
    </span>
  </el-dialog>
</template>
<script>
export default {
  data () {
    return {
      visible: false,
      vmId: 0,
      title: "标题",
      tableData: [],
      tableColumn: []
    };
  },
  methods: {
    beforeClose (done) {
      this.visible = false
      // 从DOM里将这个组件移除  
      // visible只是控制了显示与隐藏  但是dom结构中还是存在组件  为了避免消耗内存必须销毁组件
      // setTimeout(() => {
      //   console.log("this.$el.parentnode", this.$el.parentNode)
      //   console.log("this.$el", this.$el)
      //   this.$el.parentNode.removeChild(this.$el)
      // }, 500)
      setTimeout(() => {
        if (typeof this.onClose === "function") {
          this.onClose(this.vmId)
          done()
        }
      }, 500);
    },
    closeDialog () {
      this.$refs.dialog.handleClose()
    }
  }
};
</script>
<style lang="less" scoped>
</style>

2、创建modalTable.js文件

在组件中没有props接收参数,那么如何给modalTable组件传参,这就需要一个modalTable.js 文件去管理modalTable.vue组件。

import Vue from "vue";
const constructor = Vue.extend(require('./modalTable.vue').default)

let nId = 1
let instances = []

const ModalTable = (options) => {
  let id = 'table-' + nId++;
  options = options || {};

  console.log("options", options);

  // 重点:绑定关闭事件
  options.onClose = function (vmId) {
    ModalTable.close(vmId)
  }

  // 实列化
  const instance = new constructor({
    //重点:在这里将你传过来的参数匹配到modalTable.vue组件的data
    data: {
      ...options,
      vmId: id
    }
  })

  console.log("instance", instance);

  instance.id = id;
  instance.$mount(); // 挂载但是并未插入dom,是一个完整的Vue实例
  document.body.appendChild(instance.$el) // 将dom插入body
  instance.visible = true //这里修改modalTable.vue数据中的visible,这样modalTable组件就显示出来
  instances.push(instance)
  return instance
};

ModalTable.close = function (vmId) {
  console.log("vmId", vmId)
  instances.forEach((instance, index) => {
    if (instance.id == vmId) {
      document.body.removeChild(instances[index].$el)
      instances.splice(index, 1)
    }
  })
}
ModalTable.closeAll = function () {
  for (let i = instances.length - 1; i >= 0; i--) {
    instances[i].close()
  }
}
export default ModalTable;

3、在main.js文件中挂载vue原型链

import ModalTable from './components/modalTable/modalTable.js'
Vue.prototype.$modalTable = ModalTable;

4、使用

最后就可以如上文的使用方法,通过原型链调用ModalTable组件了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Vue基于Element-ui实现表格弹窗组件

本文链接: https://lsjlt.com/news/145707.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue基于Element-ui实现表格弹窗组件
    本文实例为大家分享了Vue基于Element-ui实现表格弹窗组件的具体代码,供大家参考,具体内容如下 效果图 使用方式 acTable1 () {   this.$modalTa...
    99+
    2024-04-02
  • Vue基于Element-ui怎么实现表格弹窗组件
    本篇内容主要讲解“Vue基于Element-ui怎么实现表格弹窗组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue基于Element-ui怎么实现表格弹窗组件”吧!效果图使用方式acTab...
    99+
    2023-06-30
  • Vue+Element UI如何实现概要小弹窗
    这篇文章主要介绍了Vue+Element UI如何实现概要小弹窗,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。场景:一个巡检单据有n个巡检明细,一个巡检明细有n个巡检项目。实...
    99+
    2023-06-15
  • 基于element-ui表格的二次封装实现
    在项目中经常会使用到element的表格,如果每次都cv,也确实有点麻烦,基于这个情况我对表格进行了二次封装 写一个Table组件 首先先写表格样式 <el-table...
    99+
    2024-04-02
  • Vue+Element UI实现概要小弹窗的全过程
    场景:一个巡检单据有n个巡检明细,一个巡检明细有n个巡检项目。 实现效果:当鼠标移到明细行的概要图标时显示当前行的巡检项目卡片弹窗,移出弹窗时关闭弹窗 巡检单据详情 鼠标移到项目...
    99+
    2024-04-02
  • vue如何基于element-ui分页组件封装
    这篇文章主要为大家展示了“vue如何基于element-ui分页组件封装”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何基于element-ui分页组件...
    99+
    2024-04-02
  • 基于element-ui表格的二次封装怎么实现
    这篇文章主要讲解了“基于element-ui表格的二次封装怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于element-ui表格的二次封装怎么实现”吧!在项目中经常会使用到ele...
    99+
    2023-07-02
  • vue+element-ui+sortable.js实现表格拖拽功能
    本文实例为大家分享了vue+element-ui+sortable.js实现表格拖拽的具体代码,供大家参考,具体内容如下 效果如下: 1.vue使用cli创建项目就不说了,本人使用...
    99+
    2024-04-02
  • 基于Element-Ui封装公共表格组件的详细图文步骤
    项目组最近需要把老项目拆出来表格都是独立的需要重新封装公共的表格组件 以下是实现逻辑以及部分截图 实现逻辑是类似于antd-vue框架的写法,将columns拆出来 在columns...
    99+
    2024-04-02
  • vue中Element-ui表格怎么实现树形结构表格
    这篇文章主要为大家展示了“vue中Element-ui表格怎么实现树形结构表格”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中Element-ui表格怎么实现树形结构表格”这篇文章吧。本文...
    99+
    2023-06-15
  • Vue弹窗组件的实现方法
    本文实例为大家分享了Vue弹窗组件的实现具体代码,供大家参考,具体内容如下 弹窗组件包含内容: 弹窗遮罩层内容层的实现(涉及slot、props、$on、$emit) 实现步骤: 1...
    99+
    2024-04-02
  • vue+element-ui实现头部导航栏组件
    本文实例为大家分享了vue+element-ui实现头部导航栏组件具体代码,供大家参考,具体内容如下 话不多说,先上一张效果图: 这是一个头部导航栏,网站最常见的一个功能,鼠标点击...
    99+
    2024-04-02
  • 关于Element-UI可编辑表格的实现过程
    目录一、 可编辑单元格的实现二、 Input框编辑时动态查询(下拉列表)三、 点击图标显示下拉、点击图标显示Dialog的实现一、 可编辑单元格的实现 实现效果:点击可编辑 实现原...
    99+
    2024-04-02
  • vue element-ui动态横向统计表格的实现
    目录element-ui动态横向统计表格关于element-ui表格问题表格图片显示问题表格中多出一条线element-ui动态横向统计表格 表格结构 <el-table ...
    99+
    2022-11-13
    vue element-ui 动态横向统计表格 vue element-ui 动态表格
  • Vue Element UI自定义描述列表组件
    本文实例为大家分享了Vue Element UI自定义描述列表组件的具体代码,供大家参考,具体内容如下 效果图 写在前面 写后台管理经常从列表点击查看详情,展示数据信息,Eleme...
    99+
    2024-04-02
  • Element修改弹窗类组件的层级的实现
    目录前情坑位Why解决方案前情 Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,在项目中我们就使用了它,非常nice 坑位 在使用Eleme...
    99+
    2024-04-02
  • vue如何实现基于element-ui的三级CheckBox复选框
    小编给大家分享一下vue如何实现基于element-ui的三级CheckBox复选框,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧...
    99+
    2024-04-02
  • Vue+Element UI+Lumen如何实现通用表格分页功能
    这篇文章主要为大家展示了“Vue+Element UI+Lumen如何实现通用表格分页功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue+Element ...
    99+
    2024-04-02
  • Vue element-ui表格内嵌进度条功能实现方法
    目录一、引言二、方法三、实验结果与讨论1.前期准备工作2.实现功能3完整实验代码四、结语一、引言 在着手做项目时,尤其是后台管理系统类的项目,不难会遇到,数据用进度条的形式呈现,可视...
    99+
    2024-04-02
  • 基于element-UI input等组件宽度如何修改
    这篇“基于element-UI input等组件宽度如何修改”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于el...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作