index.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <script setup lang="ts">
  2. import { Page } from '@vben/common-ui';
  3. import { VbenContextMenu } from '@vben-core/shadcn-ui';
  4. import { Button, Card, message } from 'antdv-next';
  5. const needHidden = (role: string) => {
  6. return role === 'user';
  7. };
  8. const contextMenus = () => {
  9. return [
  10. {
  11. text: '刷新',
  12. key: 'refresh',
  13. handler: (data: any) => {
  14. message.success('刷新成功', data);
  15. },
  16. hidden: needHidden('admin'),
  17. },
  18. {
  19. text: '关闭当前',
  20. key: 'close-current',
  21. handler: (data: any) => {
  22. message.success('关闭当前', data);
  23. },
  24. hidden: needHidden('user'),
  25. },
  26. {
  27. text: '关闭其他',
  28. key: 'close-other',
  29. handler: (data: any) => {
  30. message.success('关闭其他', data);
  31. },
  32. },
  33. {
  34. text: '关闭所有',
  35. key: 'close-all',
  36. handler: (data: any) => {
  37. message.success('关闭所有', data);
  38. },
  39. },
  40. ];
  41. };
  42. </script>
  43. <template>
  44. <Page title="Context Menu 上下文菜单">
  45. <Card title="基本使用">
  46. <div>一共四个菜单(刷新、关闭当前、关闭其他、关闭所有)</div>
  47. <br />
  48. <br />
  49. <VbenContextMenu :menus="contextMenus" :modal="true" item-class="pr-6">
  50. <Button> 右键点击我打开上下文菜单(有隐藏项) </Button>
  51. </VbenContextMenu>
  52. </Card>
  53. </Page>
  54. </template>