提升extent变量状态;修改部分默认值
This commit is contained in:
@@ -96,12 +96,15 @@ export const useData = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const MapComponent: React.FC<MapComponentProps> = ({ children }) => {
|
const MapComponent: React.FC<MapComponentProps> = ({ children }) => {
|
||||||
const MAP_EXTENT = config.MAP_EXTENT as [number, number, number, number];
|
|
||||||
const MAP_URL = config.MAP_URL;
|
|
||||||
|
|
||||||
// Subscribe to project context for workspace changes
|
|
||||||
const project = useProject();
|
const project = useProject();
|
||||||
const MAP_WORKSPACE = project?.workspace || config.MAP_WORKSPACE;
|
const MAP_WORKSPACE = project?.workspace || config.MAP_WORKSPACE;
|
||||||
|
const MAP_EXTENT = (project?.extent || config.MAP_EXTENT) as [
|
||||||
|
number,
|
||||||
|
number,
|
||||||
|
number,
|
||||||
|
number,
|
||||||
|
];
|
||||||
|
const MAP_URL = config.MAP_URL;
|
||||||
const MAP_VIEW_STORAGE_KEY = `${MAP_WORKSPACE}_map_view`; // 持久化 key
|
const MAP_VIEW_STORAGE_KEY = `${MAP_WORKSPACE}_map_view`; // 持久化 key
|
||||||
|
|
||||||
const mapRef = useRef<HTMLDivElement | null>(null);
|
const mapRef = useRef<HTMLDivElement | null>(null);
|
||||||
@@ -464,7 +467,7 @@ const MapComponent: React.FC<MapComponentProps> = ({ children }) => {
|
|||||||
const scadaLayer = new VectorLayer({
|
const scadaLayer = new VectorLayer({
|
||||||
source: scadaSource,
|
source: scadaSource,
|
||||||
style: scadaStyle,
|
style: scadaStyle,
|
||||||
// extent: extent, // 设置图层范围
|
extent: MAP_EXTENT, // 设置图层范围
|
||||||
maxZoom: 24,
|
maxZoom: 24,
|
||||||
minZoom: 11,
|
minZoom: 11,
|
||||||
properties: {
|
properties: {
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ export const ProjectSelector: React.FC<ProjectSelectorProps> = ({
|
|||||||
value={workspace}
|
value={workspace}
|
||||||
onChange={(e) => setWorkspace(e.target.value)}
|
onChange={(e) => setWorkspace(e.target.value)}
|
||||||
fullWidth
|
fullWidth
|
||||||
helperText="例如: TJWater"
|
helperText="例如: tjwater"
|
||||||
/>
|
/>
|
||||||
<TextField
|
<TextField
|
||||||
label="管网名称"
|
label="管网名称"
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { ProjectSelector } from "@/components/project/ProjectSelector";
|
|||||||
interface ProjectContextType {
|
interface ProjectContextType {
|
||||||
workspace: string;
|
workspace: string;
|
||||||
networkName: string;
|
networkName: string;
|
||||||
|
extent: number[];
|
||||||
}
|
}
|
||||||
|
|
||||||
const ProjectContext = createContext<ProjectContextType | undefined>(undefined);
|
const ProjectContext = createContext<ProjectContextType | undefined>(undefined);
|
||||||
@@ -19,6 +20,7 @@ export const ProjectProvider: React.FC<{ children: React.ReactNode }> = ({
|
|||||||
const [currentProject, setCurrentProject] = useState({
|
const [currentProject, setCurrentProject] = useState({
|
||||||
workspace: config.MAP_WORKSPACE,
|
workspace: config.MAP_WORKSPACE,
|
||||||
networkName: NETWORK_NAME || "tjwater",
|
networkName: NETWORK_NAME || "tjwater",
|
||||||
|
extent: config.MAP_EXTENT,
|
||||||
});
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -47,7 +49,7 @@ export const ProjectProvider: React.FC<{ children: React.ReactNode }> = ({
|
|||||||
localStorage.removeItem(`${ws}_map_view`);
|
localStorage.removeItem(`${ws}_map_view`);
|
||||||
}
|
}
|
||||||
|
|
||||||
setCurrentProject({ workspace: ws, networkName: net });
|
setCurrentProject({ workspace: ws, networkName: net, extent: extent || config.MAP_EXTENT });
|
||||||
|
|
||||||
// Save to localStorage
|
// Save to localStorage
|
||||||
localStorage.setItem("NEXT_PUBLIC_MAP_WORKSPACE", ws);
|
localStorage.setItem("NEXT_PUBLIC_MAP_WORKSPACE", ws);
|
||||||
|
|||||||
Reference in New Issue
Block a user