index.vue 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <template>
  2. <div>
  3. <Search :search="search" :reset="reset">
  4. <template v-slot:body>
  5. <el-form-item label="角色名称" prop="role_name">
  6. <el-input v-model="query.role_name" name="role_name" clearable />
  7. </el-form-item>
  8. </template>
  9. </Search>
  10. <div class="table-default">
  11. <div class="pt-5 pl-2">
  12. <Add @click="openRoleForm(null, [])" />
  13. </div>
  14. <el-table :data="tableData" class="mt-3" v-loading="loading" row-key="id" default-expand-all :tree-props="{ children: 'children' }">
  15. <el-table-column prop="role_name" label="角色名称" />
  16. <el-table-column prop="identify" label="角色标识" />
  17. <el-table-column prop="description" label="角色描述" />
  18. <el-table-column prop="created_at" label="创建时间" />
  19. <el-table-column label="操作" width="200">
  20. <template #default="scope">
  21. <Update @click="openRoleForm(scope.row.id, scope.row.permissions)" />
  22. <Destroy @click="destroy(api, scope.row.id)" />
  23. </template>
  24. </el-table-column>
  25. </el-table>
  26. </div>
  27. <Dialog v-model="visible" :title="title" destroy-on-close>
  28. <Create @close="close(reset)" :primary="id" :api="api" :has-permissions="rolePermissions" />
  29. </Dialog>
  30. </div>
  31. </template>
  32. <script lang="ts" setup>
  33. import {computed, onMounted, ref} from 'vue'
  34. import Create from './form/create.vue'
  35. import {useGetList} from '/admin/composables/curd/useGetList'
  36. import {useDestroy} from '/admin/composables/curd/useDestroy'
  37. import {useOpen} from '/admin/composables/curd/useOpen'
  38. const api = 'permissions/roles'
  39. const { data, query, search, reset, loading } = useGetList(api, false)
  40. const { destroy, deleted } = useDestroy()
  41. const { open, close, title, visible, id } = useOpen()
  42. const tableData = computed(() => data.value?.data)
  43. const rolePermissions = ref<Array<number>>([])
  44. const openRoleForm = (id, permissions) => {
  45. rolePermissions.value = permissions
  46. open(id)
  47. }
  48. onMounted(() => {
  49. search()
  50. deleted(reset)
  51. })
  52. </script>