优化useUrlQueryCriteria
parent
7bd721d10d
commit
5ea836071e
|
|
@ -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 = {};
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
|
|
|
|||
Loading…
Reference in New Issue