tab, toast grid 추가
This commit is contained in:
36
stores/tab.ts
Normal file
36
stores/tab.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
// stores/tabs.ts
|
||||
import { defineStore } from 'pinia'
|
||||
|
||||
export interface TabItem {
|
||||
key: string
|
||||
label: string
|
||||
to: string
|
||||
componentName: string
|
||||
}
|
||||
|
||||
export const useTabsStore = defineStore('tabs', {
|
||||
state: () => ({
|
||||
activeTab: '' as string,
|
||||
tabs: [] as { key: string; label: string; to: string; componentName: string }[]
|
||||
}),
|
||||
actions: {
|
||||
addTab(tab: TabItem) {
|
||||
if (!this.tabs.find(t => t.key === tab.key)) {
|
||||
this.tabs.push(tab)
|
||||
}
|
||||
this.activeTab = tab.key
|
||||
},
|
||||
removeTab(key: string) {
|
||||
const idx = this.tabs.findIndex(t => t.key === key)
|
||||
if (idx !== -1) {
|
||||
this.tabs.splice(idx, 1)
|
||||
if (this.activeTab === key && this.tabs.length) {
|
||||
this.activeTab = this.tabs[Math.max(idx - 1, 0)].key
|
||||
}
|
||||
}
|
||||
},
|
||||
setActiveTab(key: string) {
|
||||
this.activeTab = key
|
||||
}
|
||||
}
|
||||
})
|
Reference in New Issue
Block a user