最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3+el-table封裝示例詳解(編輯、刪除、查看詳情按鈕一起封裝)

 更新時間:2024年09月13日 11:19:36   作者:CallMe_CrabXie  
在Vue3中,利用Element?Plus?UI庫封裝表格組件,實現(xiàn)編輯、刪除和查看詳情的功能,通過定義tableData和tableDataHeader來管理表格數(shù)據(jù)和表頭,其中tableData通常從后端獲取,而tableHeader可根據(jù)具體需求自定義,感興趣的朋友跟隨小編一起看看吧

vue3+el-table封裝(編輯、刪除、查看詳情按鈕一起封裝),具體代碼如下所示:

// 封裝源碼(子組件)
<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column
      v-for="(column, index) in tableDataHeader"
      :label="column.label"
      :key="index"
      :prop="column.prop"
      :width="column.width"
    >
      <template #default="scope" v-if="column.operate">
        <el-button
          v-for="item in column.children"
          :key="item.prop"
          :type="item.type"
          @click="btnClick(item.method, scope.row, scope.$index)"
          >{{ item.label }}</el-button
        >
      </template>
    </el-table-column>
  </el-table>
</template>
<script setup lang="ts">
const props = defineProps<{
  tableData: Array<any>
  tableDataHeader: Array<any>
}>()
const emits = defineEmits(['deleteRow', 'editRow', 'detailRow'])
const btnClick = (method, row, index) => {
  console.log('method: ', method)
  emits(method, row, index)
}
</script>
<style scoped></style>
// 父組件調(diào)用
<template>
  <CustomTable
    :tableData="tableData"
    :tableDataHeader="tableDataHeader"
    @deleteRow="deleteRow"
    @editRow="edit"
    @detailRow="detail"
  >
  </CustomTable>
</template>
<script setup lang="ts">
import { onMounted, reactive, ref, type Ref } from 'vue'
import CustomTable from '@/components/Custom-table.vue'
import { data } from '@/data/data.ts'
const tableData: Ref<Array> = ref(data.tableData)
const tableDataHeader = ref(data.tableDataHeader)
const deleteRow = (row: any, index: number) => {
  tableData.value.splice(index, 1)
  console.log('this tableData: ', tableData)
  pagenation.value.total = tableData.value.length
}
const edit = (row, index) => {
  console.log('row: ', row, index)
}
const detail = (row, index) => {
  console.log('row: ', row, index)
}
</script>
<style scoped></style>

對應的tableData和tableDataHeader文件(實際開發(fā)中,應該從后端拿tableData,tableHeader根據(jù)情況自定義)

export const data = {
  tableData: [
    {
      name: 'knife1',
      date: '2024-09-22',
      type: 'butterfly'
    },
    {
      name: 'knife2',
      date: '2024-09-22',
      type: 'M9'
    },
    {
      name: 'knife3',
      date: '2024-09-22',
      type: 'butterfly'
    }
  ],
  tableDataHeader: [
    {
      label: 'Knife Name',
      prop: 'name',
      width: 180
    },
    {
      label: 'Favorite Date',
      prop: 'date',
      width: 180
    },
    {
      label: 'Knife Type',
      prop: 'type',
      width: 180
    },
    {
      label: 'Operation',
      operate: true,
      prop: 'Operation',
      width: '280',
      children: [
        {
          label: 'edit',
          prop: 'edit',
          method: 'editRow',
          type: 'primary'
        },
        {
          label: 'Delete',
          prop: 'Delete',
          method: 'deleteRow',
          type: 'warning'
        },
        {
          label: 'Detail',
          prop: 'Detail',
          method: 'detailRow',
          type: 'info'
        }
      ]
    }
  ]
}

到此這篇關于vue3+el-table封裝示例詳解(編輯、刪除、查看詳情按鈕一起封裝)的文章就介紹到這了,更多相關vue3 el-tale封裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue3.2+ts實現(xiàn)在方法中可調(diào)用的擬態(tài)框彈窗(類el-MessageBox)

    vue3.2+ts實現(xiàn)在方法中可調(diào)用的擬態(tài)框彈窗(類el-MessageBox)

    這篇文章主要介紹了vue3.2+ts實現(xiàn)在方法中可調(diào)用的擬態(tài)框彈窗(類el-MessageBox),這個需求最主要的是要通過方法去調(diào)用,為了像el-messagebox使用那樣方便,需要的朋友可以參考下
    2022-12-12
  • Vue使用Echarts實現(xiàn)大屏可視化布局示例詳細講解

    Vue使用Echarts實現(xiàn)大屏可視化布局示例詳細講解

    這篇文章主要介紹了Vue使用Echarts實現(xiàn)大屏可視化布局示例,本文通過實例代碼圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • Vue?privide?和inject?依賴注入的使用詳解

    Vue?privide?和inject?依賴注入的使用詳解

    這篇文章主要介紹了Vue?privide?和inject?依賴注入的用法,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • Vue雙向數(shù)據(jù)綁定與響應式原理深入探究

    Vue雙向數(shù)據(jù)綁定與響應式原理深入探究

    本節(jié)介紹雙向數(shù)據(jù)綁定以及響應式的原理,回答了雙向數(shù)據(jù)綁定和數(shù)據(jù)響應式是否相同,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-08-08
  • vue上傳圖片到oss的方法示例(圖片帶有刪除功能)

    vue上傳圖片到oss的方法示例(圖片帶有刪除功能)

    這篇文章主要介紹了vue上傳圖片到oss的方法示例(圖片帶有刪除功能),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 從0到1解鎖Element-Plus組件二次封裝El-Dialog動態(tài)調(diào)用的原理解析

    從0到1解鎖Element-Plus組件二次封裝El-Dialog動態(tài)調(diào)用的原理解析

    作者通過二次封裝Element-Plus的el-dialog組件,實現(xiàn)動態(tài)顯示與數(shù)據(jù)傳遞功能,提升項目靈活性和代碼復用性,適用于用戶編輯、文件上傳確認、權限管理等多場景需求,本文給大家介紹從0到1解鎖Element-Plus組件二次封裝El-Dialog動態(tài)調(diào)用的原理解析,感興趣的朋友一起看看吧
    2025-07-07
  • vue路由history模式頁面刷新404解決方法Koa?Express

    vue路由history模式頁面刷新404解決方法Koa?Express

    這篇文章主要為大家介紹了vue路由history模式頁面刷新404解決方法(Koa?Express)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 手把手教你搭建一個vue項目的完整步驟

    手把手教你搭建一個vue項目的完整步驟

    身為入行未深的小白前端,不斷的學習是我們不可丟失的習慣,前端流行的框架也是層出不窮,vue在眾多框架中脫穎而出,下面這篇文章主要給大家介紹了關于搭建一個vue項目的完整步驟,需要的朋友可以參考下
    2022-07-07
  • vue實現(xiàn)全選和反選功能

    vue實現(xiàn)全選和反選功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)全選和反選功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Vue程序調(diào)試和排錯技巧分享

    Vue程序調(diào)試和排錯技巧分享

    因為程序的調(diào)試非常重要,程序猿可以利用好的調(diào)試方法去查找定位自己的問題所在之處,從而,達到糾正自己程序錯誤的地方,健壯自己的程序,讓問題變得越來越少,程序變得越來越健康,所以本文給大家介紹了Vue程序調(diào)試和排錯技巧,需要的朋友可以參考下
    2024-12-12

最新評論

修水县| 陵水| 乳源| 龙岩市| 手游| 招远市| 鹤庆县| 罗源县| 阳山县| 盐池县| 桦川县| 宜宾市| 伊宁市| 玉树县| 桓台县| 南江县| 马尔康县| 霸州市| 天津市| 北京市| 博客| 通辽市| 广宗县| 凉山| 保亭| 云龙县| 神木县| 达尔| 游戏| 楚雄市| 射洪县| 枣庄市| 沙河市| 凤翔县| 仙桃市| 繁峙县| 嘉峪关市| 黎平县| 鄂伦春自治旗| 石柱| 濉溪县|