<template> <div> <Search :search="search" :reset="reset"> <template v-slot:body> {search} </template> </Search> <div class="table-default"> <Operate :show="open" /> <el-table :data="tableData" class="mt-3" v-loading="loading"{tree}> {table} <el-table-column label="操作" width="200"> <template #default="scope"> <Update @click="open(scope.row.id)" /> <Destroy @click="destroy(api, scope.row.id)" /> </template> </el-table-column> </el-table> <Paginate /> </div> <Dialog v-model="visible" :title="title" destroy-on-close> <Create @close="close(reset)" :primary="id" :api="api" /> </Dialog> </div> </template> <script lang="ts" setup> import { computed, onMounted } from 'vue' import Create from './create.vue' import { useGetList } from '/admin/composables/curd/useGetList' import { useDestroy } from '/admin/composables/curd/useDestroy' import { useOpen } from '/admin/composables/curd/useOpen' const api = '{api}' {useList} const { destroy, deleted } = useDestroy() const { open, close, title, visible, id } = useOpen() const tableData = computed(() => data.value?.data) onMounted(() => { search() deleted(reset) }) </script>