| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import '@/utils/objects'
- import { defineStore } from 'pinia'
- export const searchStore = defineStore({
- id: 'search',
- state: () => ({
- active: false,
- hotkey: {
- open: 's',
- close: 'esc'
- },
- pool: []
- }),
- getters: {},
- actions: {
- toggleActive() {
- this.active = !this.active
- },
- setActive(active) {
- this.active = active
- },
- init(menu) {
- const pool = []
- const getFullName = function (meta) {
- if (meta.breadcrumb) {
- let list = []
- meta.breadcrumb.forEach((item) => {
- list.push(item.meta.title)
- })
- return list.join(' / ')
- }
- return meta.title
- }
- const push = function (menu) {
- menu.forEach((m) => {
- if ('menu' === m.meta.type) {
- if (m.children) {
- push(m.children)
- } else if (m.children === null) {
- pool.push({
- icon: m.meta.icon,
- path: m.path,
- fullPath: m.path,
- name: m.meta.title,
- fullName: getFullName(m.meta),
- namePinyin: m.meta.title.toPinyin(),
- namePinyinFirst: m.meta.title.toPinyin(true)
- })
- }
- }
- })
- }
- push(menu)
- this.pool = pool
- }
- }
- })
|