From 4af407e6b9b9328a72a4c6ab48b7c01a4e319f17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BA=E7=8B=A8?= <18119604035@163.com> Date: Mon, 3 Jul 2023 16:20:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=A6=E4=B9=A0=E9=A1=B5=E9=9D=A2tab?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E5=88=B0url=E9=87=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/index/index.tsx | 45 +++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/src/pages/index/index.tsx b/src/pages/index/index.tsx index 2c02372..002c5a0 100644 --- a/src/pages/index/index.tsx +++ b/src/pages/index/index.tsx @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import { Row, Col, Spin, Tree, Popover, Space, Image } from "antd"; -import type { MenuProps } from "antd"; +import { useNavigate, useLocation } from "react-router-dom"; import { user } from "../../api/index"; import styles from "./index.module.scss"; import { useSelector } from "react-redux"; @@ -12,14 +12,20 @@ import iconRoute from "../../assets/images/commen/icon-route.png"; import { studyTimeFormat } from "../../utils/index"; const IndexPage = () => { + const navigate = useNavigate(); + const result = new URLSearchParams(useLocation().search); const systemConfig = useSelector((state: any) => state.systemConfig.value); const [open, setOpen] = useState(false); const [loading, setLoading] = useState(false); - const [tabKey, setTabKey] = useState(0); + const [tabKey, setTabKey] = useState(Number(result.get("tab") || 0)); const [coursesList, setCoursesList] = useState([]); const [categories, setCategories] = useState([]); - const [categoryId, setCategoryId] = useState(0); - const [categoryText, setCategoryText] = useState("所有分类"); + const [categoryId, setCategoryId] = useState( + Number(result.get("cid") || 0) + ); + const [categoryText, setCategoryText] = useState( + String(result.get("catName") || "所有分类") + ); const [selectKey, setSelectKey] = useState([0]); const [learnCourseRecords, setLearnCourseRecords] = useState({}); const [learnCourseHourCount, setLearnCourseHourCount] = useState({}); @@ -36,6 +42,12 @@ const IndexPage = () => { getParams(); }, []); + useEffect(() => { + let arr = []; + arr.push(Number(result.get("cid") || 0)); + setSelectKey(arr); + }, [result.get("cid")]); + useEffect(() => { if (currentDepId === 0) { return; @@ -163,17 +175,38 @@ const IndexPage = () => { const onChange = (key: number) => { setTabKey(key); + navigate( + "/?cid=" + categoryId + "&catName=" + categoryText + "&tab=" + key + ); }; const onSelect = (selectedKeys: any, info: any) => { setCategoryId(selectedKeys[0]); if (info.node.key === 0) { setCategoryText(info.node.title); + setSelectKey(selectedKeys); + hide(); + navigate( + "/?cid=" + + selectedKeys[0] + + "&catName=" + + info.node.title + + "&tab=" + + tabKey + ); } else { setCategoryText(info.node.title.props.children); + setSelectKey(selectedKeys); + hide(); + navigate( + "/?cid=" + + selectedKeys[0] + + "&catName=" + + info.node.title.props.children + + "&tab=" + + tabKey + ); } - setSelectKey(selectedKeys); - hide(); }; const handleOpenChange = (newOpen: boolean) => {