import { ArcgisMapType } from './createMap'; import { TreeNodeTypes } from '../../Control/index.types'; type EventType = 'ADD' | 'REMOVE' | 'UPDATE' | 'DROP'; type EventCallBackType = (node: TreeNodeTypes) => any; export interface LayerStyleType { key: string; data: any; } export interface ControlType { controlList: TreeNodeTypes[]; layerStyle: LayerStyleType[]; uploadFileLayers: any[]; sketchGraphic: any[]; hideList: string[]; mapInstance: ArcgisMapType; currentMapMode: '2D' | '3D'; controlRef: any; on: (type: EventType, callback: EventCallBackType) => any; collapse: boolean; updateControlList: (type: 'ADD' | 'REMOVE' | 'UPDATE' | 'DROP', node: TreeNodeTypes | string, controlData?: TreeNodeTypes[]) => any; updateCollapseStatus: (status: boolean, maxHeight?: number) => any; updateLayerStyleData: (data: LayerStyleType[]) => void; updateFileLayers: (type: 'ADD' | 'REMOVE' | 'UPDATE', layer: any) => any; updateSketchGraphics: (type: 'ADD' | 'REMOVE' | 'UPDATE', layer: any) => any; updateStyleStatus: (isShow: boolean, data: any) => void; updateHideList: (type: 'ADD' | 'REMOVE', serverId: string) => void; updateMapMode: (mode: '2D' | '3D') => void; updateControlRef: (ref: any) => void; destroy?: () => void; } declare class Control implements ControlType { controlList: TreeNodeTypes[]; hideList: string[]; layerStyle: LayerStyleType[]; uploadFileLayers: any[]; sketchGraphic: any[]; mapInstance: ArcgisMapType; collapse: boolean; currentMapMode: "2D" | "3D"; private events; controlRef: any; constructor(props: { mapInstance: ArcgisMapType; }); /** * @Title: 事件监听 * @Author: Leslie * @Date: 2022/2/18 */ on(type: EventType, callback: (node: TreeNodeTypes) => any): void; /** * @Title: 更新图层数据 * @Author: Leslie * @Date: 2022/2/17 */ updateControlList(type: 'ADD' | 'REMOVE' | 'UPDATE' | 'DROP', node: TreeNodeTypes | string, controlData?: TreeNodeTypes[]): void; /** * @Title: 更新上传的图层layer数据 */ updateFileLayers(type: 'ADD' | 'REMOVE' | 'UPDATE', layer: any): void; /** * @Title: 更新上传的图层layer数据 */ updateSketchGraphics(type: 'ADD' | 'REMOVE' | 'UPDATE', graphic: any): void; /** * @Title: 更新实例中的显示状态 * @Author: Leslie * @Date: 2022/2/21 */ updateCollapseStatus(status: boolean, maxHeight?: number): void; /** * @Title: 更新图层样式配置 */ updateLayerStyleData(styleConfig: LayerStyleType[]): void; /** * @title: 更新隐藏图层列表 * @author: guohongyou * @param {*} type * @param {string} serverId * @Date: 2022-12-01 */ updateHideList(type: 'ADD' | 'REMOVE', serverId: string): void; updateMapMode(mode: '2D' | '3D'): void; updateControlRef(ref: any): void; } export default Control;