12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <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>
|