element封装 table表格 ,插槽的使用,修改el-table-column的值

news2024/10/6 5:53:33

举例 vue2这种不封装的 直接写的很罗嗦麻烦 下面圈起来的可以封装一个对象 进行循环

弊端: 循环后 无法进行获取更改某一列的值 比如data日期我需要转换年月日

不循环我直接在这个el-table-column的这一列进行写(如下)

<el-table-column label="日期" width="110" align="center">
        <template slot-scope="scope">
          {{ scope.row.data| dataFilter}} 
        </template>
</el-table-column>        

在这里插入图片描述

在这里插入图片描述

 <template>
    <el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="address"
        label="地址">
      </el-table-column>
    </el-table>
  </template>

  <script>
    export default {
      data() {
        return {
          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 弄'
          }]
        }
      }
    }
  </script>

但是我们循环的话怎么更改这个指定的一列呢

解决:插槽进行解决 vue3举例 原理是一样的

新建user.vue 父组件

<template>
  <div class="user"> 
    <div class="content">
      <Hy-table :listData="userList" :propList="propList">
        <template #status="scope">
          <el-button :type="scope.row.enable ? 'success' : 'error'">
            {{ scope.row.enable ? '启用' : '禁用' }}
          </el-button>
        </template>
        <template #createAt="scope">
          {{ scope.row.createAt }}
        </template>
      </Hy-table>
    </div>
  </div>
</template>

<script lang="ts">
import { defineComponent, reactive, computed } from 'vue' 
 //引入table.vue
import HyTable from '@/base-ui/table' 
export default defineComponent({
  name: 'user', 
  components: {HyTable }, 
  setup() { 
  //真实渲染数据
    const userList = [
		{
		  cellphone : 13666666666,
	      createAt: "2023-06-23T07:40:02.000Z"
          departmentId: 4745
          enable: 1
          id: 177044190
          name: "lebron"
          realname: "lebron111"
          roleId: 1
          updateAt: "2023-06-23T07:45:09.000Z"
		},
		{
		  cellphone : 13666666666,
	      createAt: "2023-06-23T07:40:02.000Z"
          departmentId: 4745
          enable: 1
          id: 177044191
          name: "lebron"
          realname: "lebron111"
          roleId: 1
          updateAt: "2023-06-23T07:45:09.000Z"
		}
]
    //表头
    const propList = [
      { prop: 'name', label: '用户名', minWidth: '100' },
      { prop: 'realname', label: '真实姓名', minWidth: '100' },
      { prop: 'cellphone', label: '手机号码', minWidth: '120' },
      { prop: 'enable', label: '状态', minWidth: '100', slotName: 'status' },
      { prop: 'createAt', label: '创建时间', minWidth: '250', slotName: 'createAt' },
      { prop: 'updateAt', label: '更新时间', minWidth: '250', slotName: 'updateAt' }
    ]
    return { searchFormConfig, userList, propList }
  }
})
</script>

<style scoped>
</style>

新建table.vue子组件

<template>
  <div class="hy-table">
    <!-- listData 内容 -->
    <el-table :data="listData" border style="width: 100%">
      <!-- 头部 -->
      <template v-for="propItem in propList" :key="propItem.prop">
        <el-table-column v-bind="propItem" align="center">
          <template #default="scope">
            <slot :name="propItem.slotName" :row="scope.row">
              {{ scope.row[propItem.prop] }}
            </slot>
          </template>
        </el-table-column>
      </template>
    </el-table>
  </div>
</template>

<script lang="ts">
import { defineComponent, PropType } from 'vue' 
//import { tableForm } from '../types'

export default defineComponent({
  props: {
    listData: {
      type: Array,
      require: true
    },
    propList: {
      //   type: Array as PropType<tableForm[]>//但是不确定其他组件调用传输的参数  所以不这么写
      type: Array,
      require: true
    },
    data: {}
  },
  setup() {
    return {}
  }
})
</script>

<style scoped>
</style>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/698752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

COMSOL基于随机Voronoi骨架的三维多孔材料泡沫铝骨小梁模型力学分析

力学模型 模型计算为圆柱体试件轴压模型&#xff0c;在轴向荷载作用下应力分布的计算。 几何生成 采用CAD Voronoi3D插件在AutoCAD内直接生成三维Voronoi&#xff0c;其计算参数如下&#xff1a; 模型生成后删除晶格部件&#xff0c;并对晶粒进行一步平滑处理&#xff1a…

Centos7系统,虚拟机断电后启动报错:You might want to save “/run/initramfs/rdsosreport.txt“

虚拟机突然断电造成centos8系统无法启动 Linux报You might want to save “/run/initramfs/rdsosreport.txt“ to a USB stick or /boot after mounting 1.解决方法&#xff1a; 大家可以用umr查看到自己装的镜像对应的以-root结尾的文件是哪个。因为大家装的镜像不同&#x…

多语言翻译node工具

多语言 i18n 翻译node工具 介绍 本文是为了方便使用 i18n的翻译工具&#xff0c;实现把excel的内容追加或更改到项目中的多语言文件中主要文件为 index.js 、test.txt 和 dist 文件夹内所有内容&#xff08;dist为项目中需要翻译的多语言文件&#xff0c;下面有例子&#xff…

有源、无源晶振的区别

在PCB设计中&#xff0c;晶振&#xff08;晶体振荡器&#xff09;是非常重要的电子元器件&#xff0c;相信大部分的PCB工程师对它都不会陌生。而对于有源晶振与无源晶振&#xff0c;很多人却是“傻傻分不清楚”。 我们知道&#xff0c;电子线路中的晶体振荡器分为无源晶振和有源…

TI AM64x工业核心板硬件说明书(双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F,主频1GHz)

1 硬件资源 创龙科技SOM-TL64x是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 单/四核Cortex-R5F 单核Cortex-M4F设计的多核工业级核心板&#xff0c;通过工业级B2B连接器引出5x TSN Ethernet、9x UART、2x CAN-FD、GPMC、PCIe/USB 3.1等接口。核心板经过专业的P…

如何配置git的.bashrc文件

1、进入到.git文件里&#xff1a;新建一个.bashrc文件 2、打开.bashrc文件添加配置信息&#xff1a; 代码&#xff1a; #用于输出git提交日志 alias git-loggit log --prettyoneline --all --graph --abbrev-commit #用于输出当前目录所有文件及基本信息 alias llls -al …

Git入门(职场必备工具)

目录 一、git在职场中的重要性 1.1git是什么&#xff1f; 1.2什么是版本控制 1.3学习这个工具的作用和目的 二、Git开发必备技能及其应用场景 2.1 如何用Git对一个目录进行版本控制流程&#xff1f; 三、Git 如何上传和提取代码 3.1 克隆远端库到本地库 3.2 将本地库推…

硬件学习件Cadence day12 PCB设计中打地孔与地孔设计,PCB 后期处理,钻孔文件导出

1. 制作 过地孔的焊盘 &#xff08;两种方法&#xff09;&#xff08;又叫制作盲埋孔&#xff09; 1.1 制作热风焊盘 &#xff08;之前的教程有&#xff0c;现在只给数据&#xff09; 1.2 第一种 allegro 外部 焊盘软件制作 1.2.1 打开软件 1.2.2 制作焊盘&#xff0c;查看…

使用Divi创建在线学习管理 (LMS) 网站

我喜欢在线学习课程。开始一个设计良好、组织良好、内容丰富的线上课程是有道理的。如果做得好&#xff0c;这些线上课程可以让您充满成就感。但是学习一门很棒的线上课程和创建一个线上课程是两种完全不同的体验。根据我的经验&#xff0c;创建学习管理/线上课程网站可能是一个…

自动刷新工具--可以自动编辑安居客房源信息

本工具可以自动刷新安居客的房源信息&#xff0c;不是爬虫&#xff0c;就是一款解放劳动力的RPA工具 使用方法&#xff1a; 1. 首先输入要自动刷新的房源id 2.点击 开始执行 如果需要免密登陆&#xff0c;需要在个人中心填上anjuke的账密 定时执行 声明&#xff1a;此工具只是…

kafka入门,数据可靠性(八)

1、回顾发送流程 2、ACK应答原理 0&#xff1a;生斥责发送过来的数据&#xff0c;不需要等数据落盘应答&#xff08;数据可靠性分析&#xff1a;丢数&#xff09; 1&#xff1a;生产者发送过来的数据&#xff0c;leader收到数据后应答&#xff08;数据可靠性分析&#xff1a;丢…

前端网络基础

目录 网络分层模型OSI七层模型TCP/IP四层模型TCP/IP五层模型 HTTP传递消息的模式传递消息的格式响应码 URL用户代理/user agent自动发送请求自动解析响应 AJAXXHRFetch 跨域同源与异源网络通信中的跨域浏览器对跨域的限制CORS简单请求对简单请求的验证 预检请求对预检请求的验证…

第4讲:使用ajax技术实现菜单展开或隐藏功能(xml数据)

使用ajax技术实现点击菜单时&#xff0c;展开当前子菜单列表&#xff0c;隐藏其他子菜单功能&#xff1b;前端使用静态html页面生成一级菜单&#xff0c;当点击某个菜单时&#xff0c;发送数据到后端(jsp文件)&#xff0c;利用responseXML返回xml格式文件&#xff0c;刷新二级菜…

机器学习李宏毅学习笔记35

文章目录 前言一、Meta learning1.第一步2.第二步3.第三步 二、machine learning 和 meta learning区别总结 前言 Meta learning元学习&#xff1a;学习如何学习 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、Meta learning 学习这件事也是一个…

webassembly安装python环境问题

在部署emscripten过程中&#xff0c;步骤emsdk install latest报错&#xff1a; 本以为是多个版本或版本不对应导致的&#xff0c;但是卸载所有版本并安装python3.9之后还是不行。 现象就是在cmd中使用python --version不报错也无版本显示。 一波bing~之后找到了结果(PYTHON|…

《Opencv3编程入门》学习笔记—第九章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第九章 直方图与匹配 一、图像直方图概述 1、作用&#xff1a;   在每个兴趣点设置一个有相近特征的直方图所构成的标签&#xff0c;通过标记帧与帧之间显著的边缘、颜…

性能测试讲解超详细Jmeter

目录 什么是性能 性能测试的目的 功能测试和性能测试 基准测试 负载测试 稳定性测试 压力测试 并发测试 总结 性能测试指标 响应时间 并发数 吞吐量 点击数 错误率 资源使用率 总结 性能测试流程 性能测试需求分析 性能测试计划和方案 ​编辑性能测试用例​编辑 性…

【Linux系统编程】shell的感性理解——王婆说媒

文章目录 1. shell是什么&#xff1f;它有什么作用&#xff1f;2. 透过王婆说媒感性理解shell的运行机制开端发展波澜渐起&#xff08;正常命令的处理&#xff09;故事角色与处理过程中各部分的映射走向高潮&#xff08;非法请求的处理&#xff09;shell 存在的意义结尾 1. she…

Elasticsearch:删除快照安全吗?

快速回答&#xff1a;是的&#xff01; 删除快照是安全的&#xff0c;因为每个快照在逻辑上都是独立的。 了解如何以及为何可以继续阅读。 Elasticsearch 使用增量快照&#xff0c;使你能够高效地备份和恢复数据。 你可以在这篇精彩的文章中找到它的工作原理 “Elasticsearch&…

【select2下拉框】带搜索功能以及实现关联下拉框

需求 1、有两个下拉框 地区下拉框机构下拉框 2、地区变化&#xff0c;机构下拉框中内容也随之变化。 3、当地区为空时&#xff0c;显示全部机构列表 效果展示 代码实现 1、前端 &#xff08;具体样式相关代码不在此展示&#xff09; <div class"form-group"…