diff --git a/hooks/useUrlQueryCriteria/index.js b/hooks/useUrlQueryCriteria/index.js index 706f071..216d89a 100644 --- a/hooks/useUrlQueryCriteria/index.js +++ b/hooks/useUrlQueryCriteria/index.js @@ -1,12 +1,16 @@ -import { tools } from "@cqsjjb/jjb-common-lib"; -import useGetUrlQuery from "../useGetUrlQuery"; - -const { query } = tools.router; +import useUrlState from "@ahooksjs/use-url-state"; /** * 处理搜索条件缓存到 URL */ export default function useUrlQueryCriteria() { + const [state, setState] = useUrlState({ + searchFormKeys: "", + searchFormValues: "", + paginationKeys: "", + paginationValues: "", + }, { navigateMode: "replace" }); + /** * 将搜索表单项和分页参数缓存到 URL 中 */ @@ -35,20 +39,21 @@ export default function useUrlQueryCriteria() { const paginationData = getJoinString(pagination); // 将数据存储到 URL 查询参数中 - query.searchFormKeys = searchFormData.keys; - query.searchFormValues = searchFormData.values; - query.paginationKeys = paginationData.keys; - query.paginationValues = paginationData.values; + setState({ + searchFormKeys: searchFormData.keys || undefined, + searchFormValues: searchFormData.values || undefined, + paginationKeys: paginationData.keys || undefined, + paginationValues: paginationData.values || undefined, + }); } /** * 从 URL 中获取缓存的查询参数 */ function getUrlCriteriaQuery(keysStr, valuesStr) { - const query = useGetUrlQuery(); // 将键值字符串分割为数组 - const keys = query[keysStr] ? query[keysStr].split(",") : []; - const values = query[valuesStr] ? query[valuesStr].split(",") : []; + const keys = state[keysStr] ? state[keysStr].split(",") : []; + const values = state[valuesStr] ? state[valuesStr].split(",") : []; // 构建结果对象 const resultMap = {}; diff --git a/package.json b/package.json index 8180b01..678fd57 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "postinstall": "echo 'Thanks for using our component library!'" }, "dependencies": { + "@ahooksjs/use-url-state": "^3.5.1", "@ant-design/icons": "^6.1.0", "@ant-design/pro-components": "^2.8.10", "@cqsjjb/jjb-common-lib": "latest",