| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import { defineStore } from "pinia";
- import { ref } from "vue";
- import { getAllDeptList } from "@/api";
- import { getAllDeviceTypeList } from "@/api/device";
- export const useDeviceStore = defineStore('device', () => {
- const deviceTypeList = ref([])
- const deviceTypeTree = ref([])
- const buildTree = (data) => {
- const map = data.reduce((acc, item) => {
- acc[item.id] = { ...item, children: [] };
- return acc;
- }, {});
- const tree = [];
- data.forEach(item => {
- if (item.parentId && map[item.parentId]) {
- map[item.parentId].children.push(map[item.id]);
- } else if (item.parentId === 0) {
- tree.push(map[item.id]);
- }
- });
- return tree;
- }
- const loadDeviceTypeList = async () => {
- const locale = uni.getLocale()
- const list = (await getAllDeviceTypeList()).data
- // const list = (await getAllDeviceTypeList()).data.map((item) => {
- // if (item.name.includes('~~') && item.name.includes('**')) {
- // const s = item.name.split('~~')
- // if (locale.startsWith('zh')) {
- // item.name = s[0]
- // } else if (locale.startsWith('ru')) {
- // const s2 = s[2].split('**')
- // item.name = s2[1]
- // } else {
- // const s1 = s[1].split('**')
- // item.name = s1[1]
- // }
- // }
- // return JSON.parse(JSON.stringify(item))
- // })
- deviceTypeList.value = list
- deviceTypeTree.value = buildTree(list)
- }
- return { deviceTypeList, deviceTypeTree, loadDeviceTypeList }
- })
|