import {defineStore} from "pinia"; import {mockGetSearchArea} from "@/api/modules/mock/mock"; import {readonly} from "vue"; export const useWebStore = defineStore('web', { state: () => ({ searchAreaTree: [] }), getters: { searchAreaIndexTotal() { let num = 0 this.searchAreaTree.forEach(v => { v.children?.forEach(c => { num++ }) }) return num }, searchAreaTypeMap() { const map = new Map() this.searchAreaTree.forEach(v => { v.children?.forEach(c => { map.set(c.treeId, c.treeName) }) }) return map }, }, actions: { getSearchAreaTree() { return new Promise(resolve => { mockGetSearchArea().then(res => { this.searchAreaTree = readonly(res.data.map(v => { v.treeId = v.name v.treeName = v.name v.children?.forEach(c => { c.treeId = c.indexKey c.treeName = c.indexName c.children.forEach(s => { s.treeId = s.indexKey s.treeName = s.indexName }) }) return v })) resolve(this.searchAreaTree) }) }) } }, })