/*
 * @Author: code4eat awesomedema@gmail.com
 * @Date: 2022-05-27 14:17:59
 * @LastEditors: code4eat awesomedema@gmail.com
 * @LastEditTime: 2023-08-16 16:15:34
 * @FilePath: /KC-MiddlePlatform/src/pages/index/components/FastEntry/index.tsx
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */




//快速入口模块
import { history, useModel } from 'umi';
import { useEffect, useState } from 'react';
import './style.less';
import { Empty } from 'antd';
import NavSelecter, { NavSelecterData, NavSelecterItemType } from '@/components/NavSelecter';
import { addFastEntry, AddFastEntryDataType, getUserPlatformNav } from '@/service/menu';




export type FastEntryTabType = {
    name: string;
    path: string;
    systemId:string;
    type:number;
    menuId:number|string;
}
export interface FastEntryType {
    data: FastEntryTabType[];
}

export const FastEntry = (props: FastEntryType) => {

    const { initialState, setInitialState } = useModel('@@initialState');

    const [tabs, set_tabs] = useState<FastEntryTabType[]>([]);
    const [open,set_open] = useState(false);
    const [navSelecterData,set_navSelecterData] = useState<NavSelecterData[]>([]);
  

    const tabClickHandle = async (tab: FastEntryTabType) => {
        await setInitialState((s) => ({ ...s, currentSelectedSys:tab as any,currentTab:tab})); 
        history.push(tab.path)
    }

    const getNavData =async () => {
          
        const navData = await getUserPlatformNav();
        set_navSelecterData(navData);
    }

    const onCheckedHandle = async (data:NavSelecterItemType[])=>{
        const resp = await addFastEntry(data as AddFastEntryDataType[]);
        if(resp){
            set_tabs(data);   
        }
        
    }

    const addHandle = ()=>{
        getNavData();
        set_open(true);
    }


    useEffect(() => {
        const { data } = props;
        set_tabs(data);
    }, [props]);



    useEffect(()=>{
        
        // set_navSelecterData([
        //       {
        //         name:'精益医疗管理',
        //         key:0,
        //         children:[
        //             {
        //                 name:'质量安全管理',
        //                 key:1,
        //                 children:[
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:2
        //                     },
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:3
        //                     },
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:4
        //                     },
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:20
        //                     },
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:21
        //                     }
        //                 ]
        //             },
        //             {
        //                 name:'质量安全管理2',
        //                 key:30,
        //                 children:[
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:31
        //                     },
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:32
        //                     },
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:33
        //                     },
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:34
        //                     },
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:35
        //                     }
        //                 ]
        //             }
        //         ]
        //       },
        //       {
        //         name:'HBI',
        //         key:5,
        //         children:[
        //             {
        //                 name:'质量安全管理',
        //                 key:6,
        //                 children:[
        //                     {
        //                         name:'质量管理及十大安全目标',
        //                         key:7
        //                     }
        //                 ]
        //             }
        //         ]
        //       }
        // ])      
    },[])

    return (
        <div className='fastEntry'>
            
            <div className='topTitle'>
                <span className='name'>快速入口</span>
                <span className='addBtn' onClick={()=>addHandle()}>添加</span>
            </div>
            
            {
                open&&(
                     <NavSelecter title='选择应用' data={navSelecterData} onVisibleChange={(bool)=>set_open(bool)} value={tabs.map((a)=>a.menuId)} onChecked={onCheckedHandle} />
                )
            }

            <div className='wrap'>
                {
                    tabs.map((item, index) => {
                        return (
                            <div className='tab' onClick={() => tabClickHandle(item)} key={index}>{item.name}</div>
                        )
                    })
                }
                {
                    tabs.length == 0 && (
                        <div className='empty'>
                            <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
                        </div>
                    )
                }
            </div>
        </div>
    )
}