diff --git a/src/components/DetailSearchBar/index.js b/src/components/DetailSearchBar/index.js index a295533..14982e0 100644 --- a/src/components/DetailSearchBar/index.js +++ b/src/components/DetailSearchBar/index.js @@ -1,23 +1,54 @@ import {Tag,} from "antd-mobile"; -import React from "react"; +import React, {useEffect, useState} from "react"; import {useLocation, useNavigate} from 'react-router-dom'; import {CloseOutline, SearchOutline} from "antd-mobile-icons"; import "./index.css" +import {getDictionary} from "../../utils/dictUtil"; -const DetailSearchBar = () => { - const navigate = useNavigate(); - const location = useLocation(); - const search = location.state?.search; +const DetailSearchBar = (props) => { + // 从搜索设置中传来的search + // const location = useLocation(); + // const searchUpdate = location.state?.search; + // 父子传值从搜索框传来的search + const {search,updateSearch} = props; console.log("DetailSearchBar.search", search) + const [tags, setTags] = useState([]); + useEffect(() => { + if (search && search.data) { + Promise.all( + search.data.map(async (searchObj) => { + if (searchObj.name === "state") { + const dictionary = await getDictionary("2"); + const items = searchObj.value.split(','); + const itemPromises = items.map((item) => { + const dict = dictionary.get(item); + return dict ? {dict.itemName} : null; + }); + return Promise.all(itemPromises); + } + }) + ).then((results) => { + // Flatten the results and filter out null values + const flattenedResults = results.flat().filter(Boolean); + console.log("flattenedResults", flattenedResults); + setTags(flattenedResults); + }); + } + }, []); + + const navigate = useNavigate(); return (
{ - navigate("/detail/searchTask") + navigate("/detail/searchTask", {state: {"search":search}}); }}> - 紧急重要 + + {/*根据search处理搜素框展示内容*/} + {tags}
{search &&
{ - console.log("CloseOutline-Close"); + updateSearch(null); + setTags([]); }}>
diff --git a/src/components/ParentTask/index.js b/src/components/ParentTask/index.js index 56b9c2e..0d363bd 100644 --- a/src/components/ParentTask/index.js +++ b/src/components/ParentTask/index.js @@ -38,11 +38,11 @@ const ParentTask = (props)=>{ // return // } const data = await getTaskByPid(v) - console.log("await getTaskByPid(v)",data.data.data.content) + console.log("await getTaskByPid(v)",data.content) const options = - data.data.data.content.length === 0 + data.content.length === 0 ? null - : data.data.data.content.map(task => ({ + : data.content.map(task => ({ value: task.id, label: task.name, })) diff --git a/src/pages/DetailSearchContext/index.js b/src/pages/DetailSearchContext/index.js index f16a469..846aa6d 100644 --- a/src/pages/DetailSearchContext/index.js +++ b/src/pages/DetailSearchContext/index.js @@ -6,20 +6,25 @@ import {CloseCircleFill} from "antd-mobile-icons"; import {useLocation, useNavigate, useOutletContext} from "react-router-dom"; const now = new Date() const DetailSearchContext = () => { + // 使用Outlet,传值修改标题 const {setTitle} = useOutletContext(); setTitle("搜索查询") const navigate = useNavigate(); const [form] = Form.useForm(); const [visible, setVisible] = React.useState(false); const location = useLocation(); - const search = location.state?.search; + console.log("DetailSearchContext",location); + const {search,updateSearch} = location.state; console.log("DetailSearchContext.search",search) return (
{ - navigate("/home/todo", { state: { search: values } }) + // navigate("/home/todo", { state: { search: values } }) + // 根据values处理search + // updateSearch() + navigate("/home/todo") }} footer={