1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import {defineStore} from "pinia";
- import {readonly} from "vue";
- import {frontGetAllSysLabelsForQd} from "@/api/modules/web/list";
- 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
- },
- searchAreaIndexMap() {
- const map = new Map()
- const deep = (arr) => {
- arr.forEach(v => {
- if (v.children?.length > 0) {
- deep(v.children)
- } else {
- map.set(v.treeId, v)
- }
- })
- }
- deep(this.searchAreaTree)
- return map
- },
- },
- actions: {
- getSearchAreaTree() {
- return new Promise(resolve => {
- frontGetAllSysLabelsForQd().then(res => {
- this.searchAreaTree = readonly(res.data.filter(tag => tag.sysLabels?.length > 0).map(tag => {
- tag.treeId = tag.id
- tag.treeName = tag.labelName
- tag.children = tag.sysLabels?.filter(type => type.sysIndexList?.length > 0).map(type => {
- type.treeId = type.id
- type.treeName = type.labelName
- type.children = type.sysIndexList?.map(index => {
- index.treeId = index.indexTableName
- index.treeName = index.indexName
- return index
- })
- return type
- })
- return tag
- }).filter(tag => tag.children?.length > 0))
- resolve(this.searchAreaTree)
- })
- })
- }
- },
- })
|