import React, { useState, useEffect, useReducer } from 'react';
import { Button, Tree, message } from 'antd';
import { roleTree, adminDataqueryAll } from '@/services/system';
import { doFetch } from '@/utils/doFetch';
import { useRequest } from 'ahooks';
const TreeNode = Tree.TreeNode;
const initState = {
pcTree: [],
pcCheckedKeys: [],
pcHalfCheckedKeys: [],
appTree: [],
appCheckedKeys: [],
appHalfCheckedKeys: [],
daauthTree: [],
daauthCheckkedKeys: [],
daauthHalfCheckedKeys: [],
};
function reducer(state, action) {
let { type } = action,
newState = {};
switch (type) {
case 'changePc':
newState = {
...state,
pcCheckedKeys: [...action.checkedKeys],
pcHalfCheckedKeys: [...action.halfCheckedKeys],
};
break;
case 'changeApp':
newState = {
...state,
appCheckedKeys: [...action.checkedKeys],
appHalfCheckedKeys: [...action.halfCheckedKeys],
};
break;
case 'changeDaauth':
newState = {
...state,
daauthCheckkedKeys: [...action.checkedKeys],
daauthHalfCheckedKeys: [...action.halfCheckedKeys],
};
break;
case 'reset':
newState = {
...state,
pcTree: [...action.pcTree],
pcCheckedKeys: [...action.pcCheckedKeys],
pcHalfCheckedKeys: [...action.pcHalfCheckedKeys],
// appTree: [...action.appTree],
// appCheckedKeys: [...action.appCheckedKeys],
// appHalfCheckedKeys: [...action.appHalfCheckedKeys]
};
break;
case 'daauth':
newState = {
...state,
daauthTree: action.nodeList ? [...action.nodeList] : [],
daauthCheckkedKeys: action.havepremIdList ? [...action.havepremIdList] : [],
daauthHalfCheckedKeys: action.haveParentIdList ? [...action.haveParentIdList] : [],
};
break;
}
return newState;
}
const Permissiontree = (props) => {
const { id, close, treeType } = props,
[state, dispatch] = useReducer(reducer, initState),
{
pcTree,
pcCheckedKeys,
pcHalfCheckedKeys,
appTree,
appCheckedKeys,
appHalfCheckedKeys,
daauthCheckkedKeys,
daauthHalfCheckedKeys,
daauthTree,
} = state;
const loop = (data) => {
return data.map((item) => {
if (item.children) {
return (