import { useState } from "react"; // @mui import { Button, ClickAwayListener, IconButton, Input, InputAdornment, Slide, } from "@mui/material"; import { styled } from "@mui/material/styles"; // utils import { bgBlur } from "@/utils/cssStyles"; // component import Iconify from "@/components/iconify"; import { doFetch } from "@/utils/doFetch"; import { useModel } from "@umijs/max"; import { useRequest } from "ahooks"; import { Image, List, Skeleton, Tabs, Tag } from "antd"; import { Scrollbars } from "react-custom-scrollbars"; // ---------------------------------------------------------------------- const HEADER_MOBILE = 64; const HEADER_DESKTOP = 64; const StyledSearchbar = styled("div")(({ theme }) => ({ ...bgBlur({ color: theme.palette.background.default }), top: 0, left: 0, zIndex: 99, width: "100%", display: "flex", position: "absolute", alignItems: "center", height: HEADER_MOBILE, padding: theme.spacing(0, 2), boxShadow: theme.customShadows.z8, [theme.breakpoints.up("md")]: { height: HEADER_DESKTOP, padding: theme.spacing(0, 2), }, })); const StyledSearchcontent = styled("div")(({ theme }) => ({ background: "rgba(255,255,255,1)", top: HEADER_MOBILE + 12, left: 0, right: 0, zIndex: 99, margin: "auto", width: "calc(100% - 24px)", display: "flex", position: "absolute", alignItems: "center", height: "calc(100vh - 90px)", padding: theme.spacing(0, 2), boxShadow: theme.customShadows.z8, borderRadius: 12, [theme.breakpoints.up("md")]: { height: "calc(100vh - 90px)", padding: theme.spacing(0, 2), }, })); export default function Searchbar() { const [open, setOpen] = useState(false); const [search, setsearch] = useState({ name: "", type: "0", }); const { initialState: { currentUser, curitem }, setInitialState, } = useModel("@@initialState"); const userType = currentUser?.type ?? 1; const handleOpen = () => { setOpen(!open); }; const handleClose = () => { setOpen(false); setsearch({ name: "", type: "0", }); }; let { data, loading } = useRequest( async () => { if(!open) return; let res = await doFetch({ url: "/system/searchAll", params: { ...search }, }); return res?.data?.dataList ?? []; }, { debounceWait: 400, refreshDeps: [search], } ); const items = userType === 1 ? [ { key: "0", label: `全部`, children: (
( {item.typeName} , ]} > } title={{item.name} } description={
{item?.type === 4 && `${item.sectionNum}课时/${item.experimentNum}实验`}{" "} {item?.label}
} />
{item?.type === 4 && `${item?.startTime}-${item?.endTime}`}
)} />
), }, { key: "1", label: `课程`, children: (
( {item.typeName} , ]} > } title={{item.name} } description={
{item?.type === 4 && `${item.sectionNum}课时/${item.experimentNum}实验`}{" "} {item?.label}
} />
{item?.type === 4 && `${item?.startTime}-${item?.endTime}`}
)} />
), }, { key: "2", label: `教师`, children: (
( {item.typeName} , ]} > } title={{item.name} } description={
{item?.type === 4 && `${item.sectionNum}课时/${item.experimentNum}实验`}{" "} {item?.label}
} />
{item?.type === 4 && `${item?.startTime}-${item?.endTime}`}
)} />
), }, { key: "3", label: `学生`, children: (
( {item.typeName} , ]} > } title={{item.name} } description={
{item?.type === 4 && `${item.sectionNum}课时/${item.experimentNum}实验`}{" "} {item?.label}
} />
{item?.type === 4 && `${item?.startTime}-${item?.endTime}`}
)} />
), }, ] : [ { key: "0", label: `全部`, children: (
( {item.typeName} , ]} > } title={{item.name} } description={
{item?.type === 4 && `${item.sectionNum}课时/${item.experimentNum}实验`}{" "} {item?.label}
} />
{item?.type === 4 && `${item?.startTime??"未开始"}-${item?.endTime}`}
)} />
), }, ]; // [ // { // key: "0", // label: `全部`, // children: ( //
// ( // // {item.typeName} // , // ]} // > // // // } // title={{item.name} } // description={ //
// {item?.type === 4 && // `${item.sectionNum}课时/${item.experimentNum}实验`}{" "} // {item?.label} //
// } // /> //
// {item?.type === 4 && // `${item?.startTime}-${item?.endTime}`} //
//
//
// )} // /> //
// ), // }, // { // key: "1", // label: `课程`, // children: ( //
// ( // // {item.typeName} // , // ]} // > // // // } // title={{item.name} } // description={ //
// {item?.type === 4 && // `${item.sectionNum}课时/${item.experimentNum}实验`}{" "} // {item?.label} //
// } // /> //
// {item?.type === 4 && // `${item?.startTime}-${item?.endTime}`} //
//
//
// )} // /> //
// ), // }, // { // key: "2", // label: `教师`, // children: ( //
// ( // // {item.typeName} // , // ]} // > // // // } // title={{item.name} } // description={ //
// {item?.type === 4 && // `${item.sectionNum}课时/${item.experimentNum}实验`}{" "} // {item?.label} //
// } // /> //
// {item?.type === 4 && // `${item?.startTime}-${item?.endTime}`} //
//
//
// )} // /> //
// ), // }, // { // key: "3", // label: `学生`, // children: ( //
// ( // // {item.typeName} // , // ]} // > // // // } // title={{item.name} } // description={ //
// {item?.type === 4 && // `${item.sectionNum}课时/${item.experimentNum}实验`}{" "} // {item?.label} //
// } // /> //
// {item?.type === 4 && // `${item?.startTime}-${item?.endTime}`} //
//
//
// )} // /> //
// ), // }, // { // key: "4", // label: `实训`, // children: ( //
// ( // // {item.typeName} // , // ]} // > // // // } // title={{item.name} } // description={ //
// {item?.type === 4 && // `${item.sectionNum}课时/${item.experimentNum}实验`}{" "} // {item?.label} //
// } // /> //
// {item?.type === 4 && // `${item?.startTime}-${item?.endTime}`} //
//
//
// )} // /> //
// ), // }, // ]; return (
{!open && ( )} { setsearch((s) => ({ ...s, type: e, })); }} /> } sx={{ mr: 1, fontWeight: "fontWeightBold" }} value={search?.name} onChange={(e) => { setsearch((s) => ({ ...s, name: e.target.value, })); }} />
); }