tabsPage
该组件主要为了通用现有 ieam 项目的 tabs 页
使用方法
使用该组件不需要传递任何数据 数据通信均采用内置
mitt
协议
import { defineComponent, getCurrentInstance } from 'vue';
export default defineComponent({
setup() {
const { proxy } = getCurrentInstance()!;
const mitt = proxy!.$mitt;
return () => <viteTabsPage />;
},
});
为了能在项目内的 vue 原型上使用
$mitt
, 需要进行如下配置
declare module '@vue/runtime-core' {
interface ComponentCustomProperties {
$mitt: typeof Emitter;
}
}
mitt
与 tabsPage 通讯方式
vite-tabspage-add
-> 添加 page 页面使用时请注意打开的 page 参数要复合 tabsPage 组件要求
import { tabItem } from 'vitevui/lib/types/tabsPage/tabsHooks'; interface tabItem { hasClosed?: boolean; disabled?: boolean; icon?: string; id: string; props?: baseObject; name: string; component?: Component; params?: baseObject; } const addPage: tabItem = {} as tabItem; mitt.emit('vite-tabspage-add', addPage);
vite-tabspage-remove
-> 删除某个或多个 page 页面当前页面调用该方法后如未传入 ids 那么默认关闭当前页面
mitt.emit('vite-tabspage-remove');
关闭指定页面或多个页面
mitt.emit('vite-tabspage-remove', ['pageid-1', 'pageid-2', ...ids]);
vite-tabspage-open
-> 打开指定页面mitt.emit('vite-tabspage-open', pageId);
vite-tabspage-clear
-> 清空 tabspagemitt.emit('vite-tabspage-clear');
其他方法
获取 page 信息
getTabCurrentDetail
;默认获取当前页面信息,传入 id 后可根据 page id 查询页面
import { defineComponent } from 'vue'; import { getTabCurrentDetail } from 'vitevui/lib/types/tabsPage/tabsHooks'; export default defineComponent({ setup() { return () => (<div> <button onClick={() => { console.log(getTabCurrentDetail(ids?: string)) }}>获取当前页面数据</button> <div/>); }, });