优化DepartmentSelectTree

master
LiuJiaNan 2026-01-19 11:04:24 +08:00
parent 80d4a3fc5f
commit fca5fef60f
1 changed files with 18 additions and 2 deletions

View File

@ -2,6 +2,9 @@ import { request } from "@cqsjjb/jjb-common-lib/http.js";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import BasicSelectTree from "../../Basic"; import BasicSelectTree from "../../Basic";
// 全局缓存
const cacheMap = new Map();
/** /**
* 部门下拉树组件港务局版本 * 部门下拉树组件港务局版本
*/ */
@ -18,10 +21,19 @@ function DepartmentSelectTree(props) {
const [treeData, setTreeData] = useState([]); const [treeData, setTreeData] = useState([]);
const getData = async () => { const getData = async () => {
// 生成缓存键
const paramsStr = JSON.stringify(params);
const cacheKey = `${searchType}_${paramsStr}`;
// 检查缓存,如果存在直接返回缓存结果
if (cacheMap.has(cacheKey)) {
setTreeData(cacheMap.get(cacheKey));
return;
}
setTreeData([]); setTreeData([]);
if (searchType === "current") { if (searchType === "current") {
// 根据参数决定是否发送请求
if (isNeedCorpInfoId && !params.eqCorpinfoId) if (isNeedCorpInfoId && !params.eqCorpinfoId)
return; return;
if (isNeedParentId && !params.eqParentId) if (isNeedParentId && !params.eqParentId)
@ -29,7 +41,7 @@ function DepartmentSelectTree(props) {
} }
let requestUrl = ""; let requestUrl = "";
let actualParams = params; const actualParams = { ...params, time: new Date().getTime() };
if (searchType === "current") { if (searchType === "current") {
requestUrl = "/basicInfo/department/listTree"; requestUrl = "/basicInfo/department/listTree";
actualParams.inType = undefined; actualParams.inType = undefined;
@ -47,6 +59,10 @@ function DepartmentSelectTree(props) {
} }
const { data } = await request(requestUrl, "post", actualParams); const { data } = await request(requestUrl, "post", actualParams);
// 存入缓存
cacheMap.set(cacheKey, data);
setTreeData(data); setTreeData(data);
}; };