封装el-table组件

Element中el-table和MessageBox组件的二次封装 [Talk is cheap. Show me the code] 不想看理论知识请直接移步最后代码示例。 一、封装目的 在使用ElementUI过程中,发现一些组件的代码量还是过多,并且项目中频繁使用,所以就对组件进行了二次封装,并记录在博客中,欢迎共同讨论学习。 二、代码示例 2.1 MessageBox的封装 /** * 封装 在一个叫commonFn的公共服务里面 * @p... 阅读详情

封装的el-table组件

<template>
  <el-table
    border
    v-loading="loading"
    :data="tableData"
    @selection-change="selectionChange"
    style="width: 100%">
    <el-table-column
      v-if="tableType"
      :type="tableType"
      width="55">
    </el-table-column>
    <template v-for="item in tableConfig">
      <el-table-column
        v-if="item.slotName"
        :sortable="item.sortable"
        :prop="item.field"
        :min-width="item.minWidth"
        :label="item.label"
      >
        <template slot-scope="scope">
          <slot :name="item.slotName" :scope="scope"></slot>
        </template>
      </el-table-column>
      <el-table-column
        v-else
        :sortable="item.sortable"
        :prop="item.field"
        :min-width="item.minWidth"
        :label="item.label"
      >
        <template slot-scope="scope">
          <span @click="() => {$emit(item.method, scope.row)}">{{scope.row[item.field]}}</span>
        </template>
      </el-table-column>
    </template>
  </el-table>
</template>

<script>
export default {
  props: {
    loading: {
      type: Boolean,
      default: false
    },
    tableType: String,
    /* tableType   表格类型
      属性值: index/selection/空
    */
    tableConfig:Array,
    /*
      tableConfig     配置项 | Array
        field: 列的名称 | string
        label: 列的名称 | string
        sortable:列是否排序 | boolean
        minWidth: 列的最小宽度 | number
        slotName: 插槽名称 | 列的类型为插槽时加上该属性 | string
        showPopover: 列是否需要展示popover组件 | boolean
        method: 绑定的事件名称 | string
      例:(不需要的属性可不加)
      tableConfig: [
        {
          field: 'name',
          label: '姓名',
          sortable: true,
          minWidth: 60
        },
        {
          field: 'sex',
          label: '年龄',
        },
        {
          label: '操作',
          slotName: 'operation',
        }
      ],
     */
    tableData: Array
  },
  methods: {
    selectionChange(selection) {
      this.$emit('selectionChange',selection)
    }
  }
}
</script>

父组件中的使用

<template>
	<MyTable 
	   :tableData="tableData" 
	   :tableConfig="tableConfig" 
	   :loading="loading" 
	   tableType="selection" >
	   <template v-slot:operation="slotData">
	   		<el-button type="primary" size="mini">添加</el-button>
	   		<el-button type="danger" size="mini">删除</el-button>
	   </template>
	</MyTable>
</template>

<script>
export default {
	data() {
	    return {
	    	loading: false,
	    	tableData:[{
	    		name:'张山',
	    		sex: 18
	    	}],
	    	tableConfig: [
	        {
	          field: 'name',
	          label: '姓名',
	          sortable: true,
	          minWidth: 60
	        },
	        {
	          field: 'sex',
	          label: '年龄',
	        },
	        {
	          label: '操作',
	          slotName: 'operation',
	        }
	      ],
	    }
	}
}
</script>
el-table表头加入筛选功能 table表格在表头设置下拉过滤条件/功能 阅读详情

相关推荐

基于ElementUI二次封装el-table与el-pagination分页组件[实际项目使用]

组件封装是一个很常规的操作。随着时间的积累,组件也会越来越多,配合vuepress可以解决组件文档的统一化,但依然解决不了组件的跨项目复用问题。一个公司中不可能只基于一个框架或项目开发,不同的业务或模块会另起项目,这时,如果是把项目的复用组件通过复制的方式引入另一项目,就显得麻烦,而且如果组件升级或修复bug,不能实时同步。 如何解决组件的跨项目复用,是每个团队都会面临的问题。就常见的就是把组件上传到npm仓库,这样不同的项目需要时直接从npm仓库中安装使用,如果组件升级或修复问题,其他项目同步更新就可以。

前端开发工程师 2161

el-table里面template取值

el-table里面template取值。

weixin_54811243的博客 932

el-table,el-form在vue中封装组件化,含操作按钮和插槽

el-table,el-form在vue中封装组件化,含操作按钮和插槽 做管理系统的时候很多页面都是表格和表单的渲染,为此以elementui为工具封装了两个组件以供复用 Search筛选框 <template> <div class="search-panel"> <el-form v-model="searchData" inline> <el-form-item v-for="(item,index) in searchList" :k

靛青的博客 2780

el-table template slot-scope=“scope“ 不显示内容

有时候,按以下方法写的el-table的操作列会不显示内容,可用 “template 里面的属性改为 #default="scope"。重点:【template外围标签el-table-column 加上 key="slot"属性】” 的方法修改。

sinat_34896766的博客 1373

【Vue3】el-table 组件二次封装,看这一篇就够了

然而,数据的 key 作为列名的情况很少(至少在我们这里,一般是使用中文作为列名的),这就需要我们使用可定制的列名,并且,如果我们不想展示某些字段,上面的写法也是做不到的(它会显示数据的所有字段)。这时候,我们只需要一个映射(mapper)就可以解决这些问题。该对象的每一个属性对应每一列的 prop、key,值对应列的列名 label。javascript。

m0_68271787的博客 5164

保姆级教程:如何用Le2i Fall Detection Dataset训练你的跌倒检测模型(附数据集下载)

本文提供了一份详细的实战指南,教你如何使用Le2i Fall Detection Dataset训练跌倒检测模型。内容涵盖数据集的深度解析、预处理与工程化管道搭建、模型选择与训练策略,以及评估优化与部署考量,旨在帮助开发者从零构建高精度、可应用的跌倒检测系统。

assembly8low的博客 1288

el-table的使用技巧(ElementUI)

如果el-table的data是一个数组[1,2,3],并且要让每个单元格显示该数组中的一个值,可以使用标签的slot-scope属性来实现。使用组件来定义表格列,并将label属性设置为Value以表示该列的含义。然后,使用标签来定义一个插槽,该插槽的slot-scope属性被设置为scope。这个scope对象包含了表格行数据的相关信息,其中的row属性指向当前行的数据对象。

donghua201的博客 4445

时空数据建模的跨节点联邦图神经网络:KDD21 Cross-Node Federated Graph Neural Network for Spatio-Temporal Data Modeling

前言 联邦学习(FL)虽然已经被广泛研究,但是对复杂的时空依赖关系进行建模以提高预测能力仍然是一个开放的问题。此外目前最优的时空预测模型假定对数据的访问不受限制,忽略了对数据共享的限制。基于此,本文提了一个基于图联邦学习的时空数据模型 Cross-Node Federated Graph Neural Network (CNFGNN),该模型在跨节点联邦学习的约束下,使用基于图神经网络(GNN)的架构对底层图结构进行编码,属于结构化联邦的一种,每个本地模型利用私有数据进行学习,并保持分散性。CNFGNN

qq_56027260的博客 1810

el-table template 支持 formater

<el-table v-loading="listLoading" row-key="id" :data="tableData" element-loading-text="正在加载中..." stripe fit highlight-current-row @selection-change="handleSelectionChange" :height="tableH...

qq_29712969的博客 788

告别瞎猜!用通达信L2资金流向函数,手把手教你识别主力动向(附实战公式)

本文详细解析通达信L2资金流向函数,手把手教你构建主力动向监控系统。通过分档数据解析、委买委卖攻防解读及实战公式应用,帮助投资者精准识别主力建仓与虚假拉升信号,提升股票交易决策效率。

weixin_26908317的博客 2080

uni-app蓝牙MTU设置失效探因:从20字节限制到跨设备兼容性实战

本文深入探讨了uni-app蓝牙开发中MTU设置失效的常见问题,特别是20字节限制的成因及解决方案。通过分析设备兼容性、蓝牙协议栈特性和系统版本差异,提供了智能延迟策略、设备特征检测和渐进式MTU提升等实战方案,帮助开发者优化蓝牙数据传输效率。

weixin_29289821的博客 288

一文全面解析 Vue3 el-table 组件二次封装

然而,数据的 key 作为列名的情况很少(至少在我们这里,一般是使用中文作为列名的),这就需要我们使用可定制的列名,并且,如果我们不想展示某些字段,上面的写法也是做不到的(它会显示数据的所有字段)。这时候,我们只需要一个映射(mapper)就可以解决这些问题。该对象的每一个属性对应每一列的 prop、key,值对应列的列名 label。// App.vue// 定义新的Header结构,key为column的prop/key,value为column的labela: "列a",b: "列b",

CRMEB小程序商城的博客 2276

深度学习的unfold操作

对于彩色图像这样的三维数据,unfold操作会对每个通道分别进行上述的二维展开操作。例如,一个 RGB 图像,在对其进行unfold操作时,红色通道、绿色通道和蓝色通道的数据都会被独立地按照定义的窗口和步长展开,然后将这些展开后的通道数据按照原来的通道顺序组合在一起,形成新的张量。与我们熟悉的卷积类似,unfold也是使用一个特定大小的窗口和步长自左至右、自上至下滑动,不同的是,卷是滑动后与核求乘积(所以取名为卷积),而unfold滑动后不求乘积,是将窗口内的数据展开。

xulibo5828的博客 2165

ElementUI组件二次简单封装——el-table

由于多个页面大量用到el-table,而el-table的中样式根本满足不了实际项目需要,需要大量修改样式,如果不封装的话,就需要改全局的样式,而改全局的样式又会面临其他的问题,比如李四增加了一个全局table样式,张三也用了table,一看发现样式被改了,张三想 我不要你这样的样式,我就要原生的样式的,我会自己改,我们团队就有此问题,所以就想到封装一个公共的控件 xx-table,...

qq_36577699的博客 2465

智能水下机器人设计: 基于MATLAB的水下机器人动力学建模和控制系统设计,包括水下环境感知、路径规划和任务执行等

智能水下机器人是指能够在水下自主完成各种任务的机器人,例如探测、勘察、救援等。它具有广阔的应用前景,可用于海洋环境监测、水下考古、海上作业等领域。基于MATLAB的水下机器人设计可以为科研人员和工程师提供强大的建模和仿真工具,帮助他们设计更智能、更高效的水下机器人。智能水下机器人是未来海洋科技发展的重要方向,它将为海洋科学研究、水下考古和海上作业等领域带来新的机遇。MATLAB是一种功能强大的数学和科学计算软件,它可以为智能水下机器人设计提供强大的工具和支持。

走向CTO的路上... 962

【经验&技巧】如何在ADS中导入示波器的时域波形?

从示波器中导出的时域波形数据,需要按照固定的格式进行修改,并通过Display dataset对话框导入ADS。

一只豌豆象的博客 1572

超好用的element的el-table表格组件二次封装-附源码及讲解

前言:在很多后台管理系统开发时总会有很多表格的使用,如果我们每次都用elementui官网的el-table去写的话,调整所有表格的样式就会很麻烦,而且页面内容也会很累赘繁琐。 讲解一个我经常使用的二次封装el-table组件,该组件可以容纳很多种特定的需求并且非常简便。所有例子都是使用vue2+elementUI,如要使用vue3稍作修改即可,也可评论问我

wzy_PROTEIN的博客 7543

基于点云数据的统计滤波算法改进

随着三维视觉和点云处理技术的发展,点云数据在机器人、自动驾驶、增强现实等领域得到了广泛应用。而点云数据中常常包含着各种噪声和异常点,这些噪声和异常点会影响后续的数据处理和分析任务。因此,对点云数据进行滤波处理是必不可少的一步。在点云滤波算法中,统计滤波(Statistical Filtering)是一种常见且有效的方法。它通过对点云数据进行统计分析,将噪声和异常点剔除或修复,从而得到更为准确和可靠的点云数据。本文将介绍一种改进的统计滤波算法,并提供相应的源代码实现。

QfcaLinux的博客 292

element-plus el-table表格组件封装记录

昨天初步体验了一把form表单的封装,觉得还是有些浅显且有些地方没有理清,所以今天来试一试B端项目中同样常用的一个组件---el-table的二次封装,1.和el-form组件一样通过传入对象的形式对table表格进行条件渲染2.能够在实际调用场景下通过插槽来自定义标题,提交按钮等一些小东西3.能够通过v-bind绑定属性实现开关组件,编辑/删除,多选框等操作按钮的显示。

weixin_64160020的博客 2603

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

组件化页面:封装el-table

项目做的越来越多,重复的东西不断的封装成了组件,慢慢的,页面就组件化了,只需要定义组件配置数据,使用就好了,这是一件非常舒服的事情,这篇文章主要和大家讲讲如何对element-ui中的el-table进行二次封装。 分析需求 公有组件,可以被任何页面调用,首先要保证组件不和外部业务发生耦合,其次就是要设计合理的字段,使用时通过不同的配置即可使用。 那先大致来分析以下可能有的需求: 动态表头 嵌套...

weixin_34387468的博客 3259

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

二次封装el-table组件

el-table二次封装

Mjt658的博客 719

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Vue 的Element UI 封装 el-table和 el-agination 结合组件

Vue 的Element UI 封装 el-table和 el-agination 结合组件 在后台管理系统中,经常会用到table和agination分页结合使用。封装个组件让其试用于所有的表格页面。 思路: 确定要封装的内容,从父组件传给子组件的内容和从子组件传给父组件的内容, 熟悉父子组件间传值方法 子组件: <template> <div> ...

Amanda_wmy的博客 1353

js封装el-table组件并使用

封装el-table 组件 需求: (1)表头可点击 (2)表格样式 (3)合并单元格 组件代码如下: Vue.component('datareport-component', { props: { title: "", // 报表名称 reportlistdata: [], // 表格数据 tableid: "", // 表格id columns: [], // 表格列内容 items: [], // 表格可点击表头的列内容 fontweight:

qq_28691187的博客 1484

vue二次封装el-table组件

vue二次封装el-table组件,增加右键菜单选择展示列。

书中自有妍如玉的博客 1991

elementui中el-table表格封装成组件

子组件表格dialog封装结构如图: <el-dialog :title="propsSelectData.title" :visible.sync="propsSelectData.visibleMultiSelectDialog" width="40%" :showClose="false" :modal='false' :close-on-click-modal

L_WalkingPig的博客 1267
上一篇: el-dropdown组件实现三级菜单
下一篇: js实现文件下载功能
kaiup
博客等级 码龄7年 32粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值