优化useUrlQueryCriteria

master
LiuJiaNan 2025-12-16 11:50:42 +08:00
parent 7bd721d10d
commit 5ea836071e
2 changed files with 17 additions and 11 deletions

View File

@ -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 = {};

View File

@ -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",