123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import { getUserInfo } from '@/common/store-mixin'
- import DataService from '../dataUphold/data-config'
- // 生成树形
- export function generateTree(data, id, parentId, children) {
- const idMap = {}
- const jsonTree = []
- data.forEach((v) => {
- v.key = v.id
- idMap[v[id]] = v
- })
- data.forEach((v) => {
- const parent = idMap[v[parentId]]
- if (parent) {
- !parent[children] && (parent[children] = [])
- parent[children].push(v)
- } else {
- jsonTree.push(v)
- }
- })
- return jsonTree
- }
- // 根据id获取树形结构的所有父级
- export function getTreeIds(tree, nodeId, config) {
- const { children = 'children', id = 'id' } = config || {}
- const toFlatArray = (tree, parentId) => {
- return tree.reduce((t, _) => {
- const child = _[children]
- return [
- ...t,
- parentId ? { ..._, parentId } : _,
- ...(child && child.length ? toFlatArray(child, _[id]) : []),
- ]
- }, [])
- }
- const getIds = (flatArray) => {
- let ids = [nodeId]
- let child = flatArray.find((_) => _[id] === nodeId)
- while (child && child.parentId) {
- ids = [child.parentId, ...ids]
- child = flatArray.find((_) => _[id] === child.parentId)
- }
- const isFlag = flatArray.find((_) => _[id] === 0)
- if (isFlag && ids[0] !== 0) {
- ids = [0, ...ids]
- }
- return ids
- }
- return getIds(toFlatArray(tree))
- }
- export function userRootGroup() {
- const userInfo = getUserInfo()
- DataService.getCompany(userInfo.account).then((res) => {
- let rootNodeData = {
- code: res.data.id,
- name: res.data.name,
- }
- const allUserAdmin = ['00942922', '00332032', '00372263', '00350134', '00965077', '00935000']
- if (allUserAdmin.includes(userInfo.account)) {
- rootNodeData = {}
- }
- console.log('🚀 ~ DataService.getCompany ~ rootNodeData:', rootNodeData)
- return rootNodeData
- })
- }
|