123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <template>
- <el-table :data="filterTableData" style="width: 100%">
- <el-table-column label="Date" prop="date" />
- <el-table-column label="Name" prop="name" />
- <el-table-column align="right">
- <template #header>
- <el-input v-model="search" size="small" placeholder="Type to search" />
- </template>
- <template #default="scope">
- <el-button size="small" @click="handleEdit(scope.$index, scope.row)">Edit</el-button>
- <el-button size="small" type="danger" @click="handleDelete(scope.$index, scope.row)">Delete</el-button>
- </template>
- </el-table-column>
- </el-table>
- </template>
- <script lang="ts" setup>
- import { computed, ref } from 'vue'
- interface User {
- date: string
- name: string
- address: string
- }
- const search = ref('')
- const filterTableData = computed(() => tableData.filter(data => !search.value || data.name.toLowerCase().includes(search.value.toLowerCase())))
- const handleEdit = (index: number, row: User) => {
- console.log(index, row)
- }
- const handleDelete = (index: number, row: User) => {
- console.log(index, row)
- }
- const tableData: User[] = [
- {
- date: '2016-05-03',
- name: 'Tom',
- address: 'No. 189, Grove St, Los Angeles',
- },
- {
- date: '2016-05-02',
- name: 'John',
- address: 'No. 189, Grove St, Los Angeles',
- },
- {
- date: '2016-05-04',
- name: 'Morgan',
- address: 'No. 189, Grove St, Los Angeles',
- },
- {
- date: '2016-05-01',
- name: 'Jessy',
- address: 'No. 189, Grove St, Los Angeles',
- },
- ]
- </script>
|