webman迁移
This commit is contained in:
84
dafuweng-webman/web/src/stores/memberCenter.ts
Normal file
84
dafuweng-webman/web/src/stores/memberCenter.ts
Normal file
@@ -0,0 +1,84 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { reactive } from 'vue'
|
||||
import type { RouteRecordRaw } from 'vue-router'
|
||||
import type { MemberCenter } from '/@/stores/interface/index'
|
||||
|
||||
export const useMemberCenter = defineStore('memberCenter', () => {
|
||||
const state: MemberCenter = reactive({
|
||||
open: true,
|
||||
layoutMode: 'Default',
|
||||
viewRoutes: [],
|
||||
showHeadline: false,
|
||||
authNode: new Map(),
|
||||
shrink: false,
|
||||
menuExpand: false,
|
||||
navUserMenus: [],
|
||||
})
|
||||
|
||||
const setNavUserMenus = (menus: RouteRecordRaw[]) => {
|
||||
state.navUserMenus = menus
|
||||
}
|
||||
|
||||
const mergeNavUserMenus = (menus: RouteRecordRaw[]) => {
|
||||
state.navUserMenus = [...state.navUserMenus, ...menus]
|
||||
}
|
||||
|
||||
const setAuthNode = (key: string, data: string[]) => {
|
||||
state.authNode.set(key, data)
|
||||
}
|
||||
|
||||
const mergeAuthNode = (authNode: Map<string, string[]>) => {
|
||||
state.authNode = new Map([...state.authNode, ...authNode])
|
||||
}
|
||||
|
||||
const setViewRoutes = (data: RouteRecordRaw[]): void => {
|
||||
state.viewRoutes = encodeRoutesURI(data)
|
||||
}
|
||||
|
||||
const setShowHeadline = (show: boolean): void => {
|
||||
state.showHeadline = show
|
||||
}
|
||||
|
||||
const setShrink = (shrink: boolean) => {
|
||||
state.shrink = shrink
|
||||
}
|
||||
|
||||
const setStatus = (status: boolean) => {
|
||||
state.open = status
|
||||
}
|
||||
|
||||
const setLayoutMode = (mode: string) => {
|
||||
state.layoutMode = mode
|
||||
}
|
||||
|
||||
const toggleMenuExpand = (expand = !state.menuExpand) => {
|
||||
state.menuExpand = expand
|
||||
}
|
||||
|
||||
return {
|
||||
state,
|
||||
setNavUserMenus,
|
||||
mergeNavUserMenus,
|
||||
setAuthNode,
|
||||
mergeAuthNode,
|
||||
setViewRoutes,
|
||||
setShowHeadline,
|
||||
setShrink,
|
||||
setStatus,
|
||||
setLayoutMode,
|
||||
toggleMenuExpand,
|
||||
}
|
||||
})
|
||||
|
||||
function encodeRoutesURI(data: RouteRecordRaw[]) {
|
||||
data.forEach((item) => {
|
||||
if (item.meta?.menu_type == 'iframe') {
|
||||
item.path = '/user/iframe/' + encodeURIComponent(item.path)
|
||||
}
|
||||
|
||||
if (item.children && item.children.length) {
|
||||
item.children = encodeRoutesURI(item.children)
|
||||
}
|
||||
})
|
||||
return data
|
||||
}
|
||||
Reference in New Issue
Block a user