admin-vben/apps/web-antd/src/views/demos/features/tabs/index.vue

87 lines
2.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<script lang="ts" setup>
import { useRouter } from 'vue-router';
import { useTabs } from '@vben/hooks';
import { Button } from 'ant-design-vue';
defineOptions({ name: 'FeatureTabsDemo' });
const router = useRouter();
// const newTabTitle = ref('');
const {
closeAllTabs,
closeCurrentTab,
closeLeftTabs,
closeOtherTabs,
closeRightTabs,
closeTabByKey,
refreshTab,
} = useTabs();
function openTab() {
// 这里就是路由跳转也可以用path
router.push({ name: 'VbenAbout' });
}
</script>
<template>
<div class="p-5">
<div class="card-box p-5">
<h1 class="text-xl font-semibold">标签页</h1>
<div class="text-foreground/80 mt-2">用于需要操作标签页的场景</div>
</div>
<div class="card-box mt-5 p-5">
<div class="text-lg font-semibold">打开/关闭标签页</div>
<div class="text-foreground/80 my-3">
如果标签页存在直接跳转切换如果标签页不存在则打开新的标签页
</div>
<div class="flex flex-wrap gap-3">
<Button type="primary" @click="openTab"> "" </Button>
<Button type="primary" @click="closeTabByKey('/vben-admin/about')">
""
</Button>
</div>
</div>
<div class="card-box mt-5 p-5">
<div class="text-lg font-semibold">标签页操作</div>
<div class="text-foreground/80 my-3">用于动态控制标签页的各种操作</div>
<div class="flex flex-wrap gap-3">
<Button type="primary" @click="closeCurrentTab()">
</Button>
<Button type="primary" @click="closeLeftTabs()">
</Button>
<Button type="primary" @click="closeRightTabs()">
</Button>
<Button type="primary" @click="closeAllTabs()"> </Button>
<Button type="primary" @click="closeOtherTabs()">
</Button>
<Button type="primary" @click="refreshTab()"> </Button>
</div>
</div>
<div class="card-box mt-5 p-5">
<div class="text-lg font-semibold">动态标题</div>
<div class="text-foreground/80 my-3">
该操作不会影响页面标题仅修改Tab标题
</div>
<!-- <div class="flex flex-wrap items-center gap-3">
<Input
v-model="newTabTitle"
class="w-30"
placeholder="请输入新的标题"
/>
<Button type="primary" @click="closeCurrentTab()">
{{ newTabTitle }}
</Button>
</div> -->
</div>
</div>
</template>