UserPermissionDrawer.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <template>
  2. <BasicDrawer
  3. v-bind="$attrs"
  4. @register="registerDrawer"
  5. title="API授权"
  6. :width="adaptiveWidth"
  7. @ok="handleSubmit"
  8. :showFooter="showFooter"
  9. destroyOnClose
  10. >
  11. <BasicTree
  12. :checkedKeys="checkedKeys"
  13. :expandedKeys="expandedKeys"
  14. :selectedKeys="selectedKeys"
  15. checkable
  16. :tree-data="treeData"
  17. ref="treeRef"
  18. :clickRowToExpand="false"
  19. @check="onCheck"
  20. @select="onTreeNodeSelect"
  21. >
  22. <template #title="{ title, key }">
  23. <span v-if="key === '0-0-1-0'" style="color: #1890ff">{{ title }}</span>
  24. <template v-else>{{ title }}</template>
  25. </template>
  26. </BasicTree>
  27. </BasicDrawer>
  28. </template>
  29. <script lang="ts" setup>
  30. import { defineComponent, ref, computed, unref, useAttrs } from 'vue';
  31. import { BasicTree, TreeItem } from '/src/components/Tree';
  32. import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
  33. import { getAPILIst } from './user.api';
  34. import { useDrawerAdaptiveWidth } from '/@/hooks/jeecg/useAdaptiveWidth';
  35. // 声明Emits
  36. const emit = defineEmits(['success', 'register']);
  37. const showFooter = ref(true);
  38. const selectedKeys = ref([]);
  39. const expandedKeys = ref([]);
  40. const checkedKeys = ref([]);
  41. const treeData = [
  42. {
  43. title: 'parent 1',
  44. key: '0-0',
  45. },
  46. {
  47. title: '测试api',
  48. key: '0-1',
  49. },
  50. {
  51. title: '测试api1',
  52. key: '0-2',
  53. },
  54. {
  55. title: '测试api2',
  56. key: '0-3',
  57. },
  58. ];
  59. //表单赋值
  60. const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
  61. showFooter.value = data?.showFooter ?? true;
  62. setDrawerProps({ confirmLoading: false, showFooter: showFooter.value });
  63. });
  64. const { adaptiveWidth } = useDrawerAdaptiveWidth();
  65. //提交事件
  66. async function handleSubmit() {
  67. try {
  68. setDrawerProps({ confirmLoading: true });
  69. closeDrawer();
  70. //刷新列表
  71. emit('success');
  72. } finally {
  73. setDrawerProps({ confirmLoading: false });
  74. }
  75. }
  76. </script>