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 "umi";
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 (