index.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <template>
  2. <!-- 搜索工作栏 -->
  3. <content-wrap>
  4. <Search :schema="allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams">
  5. <!-- 新增等操作按钮 -->
  6. <template #actionMore>
  7. <el-button
  8. type="primary"
  9. @click="openModal('create')"
  10. v-hasPermi="['system:mail-account:create']"
  11. >
  12. <Icon icon="ep:plus" class="mr-5px" /> 新增
  13. </el-button>
  14. </template>
  15. </Search>
  16. </content-wrap>
  17. <!-- 列表 -->
  18. <content-wrap>
  19. <Table
  20. :columns="allSchemas.tableColumns"
  21. :data="tableObject.tableList"
  22. :loading="tableObject.loading"
  23. :pagination="{
  24. total: tableObject.total
  25. }"
  26. v-model:pageSize="tableObject.pageSize"
  27. v-model:currentPage="tableObject.currentPage"
  28. >
  29. <template #action="{ row }">
  30. <el-button
  31. link
  32. type="primary"
  33. @click="openModal('update', row.id)"
  34. v-hasPermi="['system:mail-template:update']"
  35. >
  36. 编辑
  37. </el-button>
  38. <el-button
  39. link
  40. type="danger"
  41. v-hasPermi="['system:mail-template:delete']"
  42. @click="handleDelete(row.id)"
  43. >
  44. 删除
  45. </el-button>
  46. </template>
  47. </Table>
  48. </content-wrap>
  49. <!-- 表单弹窗:添加/修改 -->
  50. <mail-template-form ref="modalRef" @success="getList" />
  51. </template>
  52. <script setup lang="ts" name="MailTemplate">
  53. import { allSchemas } from './template.data'
  54. import * as MailTemplateApi from '@/api/system/mail/template'
  55. import MailTemplateForm from './form.vue'
  56. // tableObject:表格的属性对象,可获得分页大小、条数等属性
  57. // tableMethods:表格的操作对象,可进行获得分页、删除记录等操作
  58. // 详细可见:https://kailong110120130.gitee.io/vue-element-plus-admin-doc/components/table.html#usetable
  59. const { tableObject, tableMethods } = useTable({
  60. getListApi: MailTemplateApi.getMailTemplatePage, // 分页接口
  61. delListApi: MailTemplateApi.deleteMailTemplate // 删除接口
  62. })
  63. // 获得表格的各种操作
  64. const { getList, setSearchParams } = tableMethods
  65. /** 添加/修改操作 */
  66. const modalRef = ref()
  67. const openModal = (type: string, id?: number) => {
  68. modalRef.value.openModal(type, id)
  69. }
  70. /** 删除按钮操作 */
  71. const handleDelete = (id: number) => {
  72. tableMethods.delList(id, false)
  73. }
  74. /** 初始化 **/
  75. onMounted(() => {
  76. getList()
  77. })
  78. </script>