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