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 = {
pcList: [],
havepremIdList: [],
haveParentIdList: [],
appTree: [],
appCheckedKeys: [],
appHalfCheckedKeys: [],
daauthTree: [],
daauthCheckkedKeys: [],
daauthHalfCheckedKeys: [],
};
function reducer(state, action) {
let { type } = action,
newState = {};
switch (type) {
case 'changePc':
newState = {
...state,
havepremIdList: [...action.checkedKeys],
haveParentIdList: [...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,
pcList: [...action.pcList],
havepremIdList: [...action.havepremIdList],
haveParentIdList: [...action.haveParentIdList],
// 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),
{
pcList,
havepremIdList,
haveParentIdList,
appTree,
appCheckedKeys,
appHalfCheckedKeys,
daauthCheckkedKeys,
daauthHalfCheckedKeys,
daauthTree,
} = state;
useEffect(() => {
resetData();
}, []);
const loop = (data) => {
return data.map((item) => {
if (item.children) {
return (