index.vue 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <PageWrapper title="标签页操作示例">
  3. <CollapseContainer title="在下面输入框输入文本,切换后回来内容会保存">
  4. <a-alert banner message="该操作不会影响页面标题,仅修改Tab标题" />
  5. <template class="mt-2 flex flex-grow-0">
  6. <a-button class="mr-2" @click="setTabTitle" type="primary"> 设置Tab标题 </a-button>
  7. <a-input placeholder="请输入" v-model:value="title" class="mr-4 w-12" />
  8. </template>
  9. </CollapseContainer>
  10. <CollapseContainer class="mt-4" title="标签页操作">
  11. <a-button class="mr-2" @click="closeAll"> 关闭所有 </a-button>
  12. <a-button class="mr-2" @click="closeLeft"> 关闭左侧 </a-button>
  13. <a-button class="mr-2" @click="closeRight"> 关闭右侧 </a-button>
  14. <a-button class="mr-2" @click="closeOther"> 关闭其他 </a-button>
  15. <a-button class="mr-2" @click="closeCurrent"> 关闭当前 </a-button>
  16. <a-button class="mr-2" @click="refreshPage"> 刷新当前 </a-button>
  17. </CollapseContainer>
  18. </PageWrapper>
  19. </template>
  20. <script lang="ts">
  21. import { defineComponent, ref } from 'vue';
  22. import { CollapseContainer } from '/@/components/Container/index';
  23. import { useTabs } from '/@/hooks/web/useTabs';
  24. import { PageWrapper } from '/@/components/Page';
  25. import { Input, Alert } from 'ant-design-vue';
  26. import { useMessage } from '/@/hooks/web/useMessage';
  27. export default defineComponent({
  28. name: 'TabsDemo',
  29. components: { CollapseContainer, PageWrapper, [Input.name]: Input, [Alert.name]: Alert },
  30. setup() {
  31. const title = ref<string>('');
  32. const { closeAll, closeLeft, closeRight, closeOther, closeCurrent, refreshPage, setTitle } =
  33. useTabs();
  34. const { createMessage } = useMessage();
  35. function setTabTitle() {
  36. if (title.value) {
  37. setTitle(title.value);
  38. } else {
  39. createMessage.error('请输入要设置的Tab标题!');
  40. }
  41. }
  42. return {
  43. closeAll,
  44. closeLeft,
  45. closeRight,
  46. closeOther,
  47. closeCurrent,
  48. refreshPage,
  49. setTabTitle,
  50. title,
  51. };
  52. },
  53. });
  54. </script>