zhongrj
2023-06-27 d74b495736f0c04522ec54274b70fed0ded2878d
public/map/core/AppEvent.js
New file
@@ -0,0 +1,282 @@
define(["dojo/topic"],
   function(topic) {
      //
      var _instance = {
         CONFIG_LOADED: "configLoaded",
         CONFIG_LOADED_ERROR: "configLoadedError",
         START_LOAD_BASEMAP_LAYER: "startLoadBaseMapLayer",
         /**
          * 加载其他年份的图层事件
          */
         LOAD_OTHERTIMELAYER:"loadOtherTimeLayer",
         /**
          * 底图切换事件。      事件对象:{target:String 需要处理底图切换的MapWidget的Id,
          *                        grouplayer:String 需要切换到的GroupLayer的Id,
          *                     setlayer:String 需要切换到的SetLayer的Id,
          *                        sender:String 发起底图切换的对象Id}
          */
         SWITCH_BASEMAP: "switchBasemap",
         /**
          * 底图切换完成事件。      事件对象:{target:String 处理底图切换的MapWidget的Id,
          *                        grouplayer:String 切换到的GroupLayer的Id,
          *                       setlayer:String 切换到的SetLayer的Id,
          *                        sender:String 发起底图切换的对象Id}
         SWITCH_BASEMAP_COMPLETED: "switchBasemapCompleted",*/
         BASE_MAP_LAYER_LOADED: "baseMapLayerLoaded",
         BASE_MAP_LAYER_LOADED_ERROR: "baseMapLayerLoadedError",
         /**  增加一个置顶图层           事件对象:{layerId:String,priority:Int 越大值越在上层,值相同时视事件调用先后排序} 在addlayer前触发事件以确保最后添加的图层能够被正确排序**/
         ADD_TOP_MOST_LAYER: "addTopMostLayer",
         /**置顶图层**/
         TOP_MOST_LAYER: "topMostLayer",
         /**
          * Widget第一次加载
          */
         WIDGET_LOADED: "widgetLoaded",
         /**
          * Widget打开    事件对象:{name:String 模块的名称,instance: 模块对象}
          */
         WIDGET_OPENED: "widgetOpened",
         /**
          * Widget关闭    事件对象:{name:String 模块的名称,instance: 模块对象}
          */
         WIDGET_CLOSED: "widgetClosed",
         /**
          * 获取登陆的用户信息
          */
         GET_LOG_USER: "getLogUser",
         /**
          * 显示加载框
          */
         SHOW_LOAD: "showLoad",
         /**
          * 隐藏加载框
          */
         HIDE_LOAD: "hideLoad",
         /**
          * 切换专题图的可见性,更改是否可查询
          */
         SWITCH_THEMATIC_LAYER: "switchThematicLayer",
         /**
          * 向系统增加地图交互工具。事件对象:{tool:BaseTool需要添加的Tool,hockId:挂接的MapWidgetId}
          */
         APPEND_TOOL: "appendTool",
         /**
          * 地图范围改变
          */
         MAP_EXTENT_CHANGE: "map_extent_change",
         /**
          * 行政区域改变
          */
         MAP_DISTRICT_CHANGE: "map_district_change",
         /**
          * 改变行政区域
          */
         CHANGE_DISTRICT: "change_district",
         /**
          * 应用加载时,用来判断是否用户已登录
          */
         APPLICATION_LOAD: "applicationload",
         /**
          * 应用的窗体大小有变化,事件对象:{}
          */
         APPLICATION_RESIZE: "applicationResize",
         /**
          * 全屏事件,事件对象:{fullscreen:true(开启全屏)/false(关闭全屏)}
          */
         APPLICATION_FULLSCREEN: "applicationFullscreen",
         /**
          * 清空事件,事件对象:null
          */
         APPLICATION_CLEAR: "applicationClear",
         /**
          * 发送添加MapWidget的事件,只能作为附属地图添加到框架中。 事件对象:{mapwidget:widgets/MapWidget  需要添加的MapWidget,relate:boolean   是否和主地图进行关联,关联后其中任意一个地图的extent改变都会改变另外一个地图的extent}
          */
         APPEND_MAPWIDGET: "appendMapWidget",
         /**
          * 发送移除MapWidget事件。事件对象:id:String  需要移除的mapWidget的Id
          */
         REMOVE_MAPWIDGET: "removeMapWidget",
         /**
          * 启动/打开指定的Widget。事件对象:{id:widgetId}
          */
         RUN_WIDGET: "runWidget",
         /**
          * 关闭指定的Widget。事件对象:{id:widgetId}
          */
         CLOSE_WIDGET: "closeWidget",
         /**
          * 搜索事件。事件对象:{hockId:String,poiType:String,poiName:String,queryType:String,...}  参考QueryManager.QueryArguments的定义
          */
         RUN_QUERY: "runQuery",
         /**
          * 智能提示查询事件。事件对象:{hockId:String,args:{keyword:String,count:Int,start:Int}}
          */
         RUN_SMART_QUERY: "runSmartQuery",
         /**
          * 查询成功。事件对象:queryResult 由querymanager构造的查询结果对象
          */
         QUERY_SUCCESS: "querySuccess",
         /**
          * 查询出错。事件对象:queryResult 由querymanager构造的查询错误对象
          */
         QUERY_ERROR: "queryError",
         /**
          * 查询结果更新。事件对象:{hockId:String,result:Object,loading:Boolean}
          */
         UPDATE_QUERY_RESULT: "updateQueryResult",
         /**
          * 用户POI类别变更。事件对象:{poiType:String,poiName:String}
          */
         POI_CHANGED: "poiChanged",
         /**
          * 用户搜索关键字变更。事件对象:String
          */
         KEYWORD_CHANGED: "keywordChanged",
         /**
          * 搜索框被点击搜索按钮或选中提示项所派发的事件。事件对象:{hockId:String,type:String("search"|"suggest"),args:{keyword:String,poiId:String,poiName:String,pac:String}}
          */
         SEARCHBOX_QUERY: "searchboxQuery",
         /**
          * 改变searchbox状态的事件。事件对象:{hockId:String ,type:"update"|"cleear",data:{keyword:String}}
          */
         CHANGE_SEARCHBOX_STATE: "changeSearchboxState",
         /**
          * 绑定菜单。事件对象:{menuId:String,dom:Dom Object,layer:graphicLayer Object}
          */
         BIND_MENU: "bineMenu",
         /**
          * 菜单项点击事件。事件对象:{menuId:String,menuItemId:String,coordinate:Object,graphic:graphic Object}
          */
         MENU_ITEM_CLICKED: "menuItemClicked",
         /**
          * 用户登录
          */
         USER_LOGIN: "userlogin",
         /**
          * 用户注销
          */
         USER_LOGOUT: "userlogout",
         /**
          * 打开标记
          */
         SIGN_RUN: "signrun",
         /**
          * 关闭标记
          */
         SIGN_CLOSE: "signclose",
         /**
          *
          */
         SG_CLOSE:"sgclose",
         /**
          * 打开纠错
          */
         ERRCORRECT_RUN: "errcorrectrun",
         /**
          * 关闭纠错
          */
         ERRCORRECT_CLOSE: "errcorrectclose",
         /**
          *
          */
         ERR_CLOSE:"errclose",
         /**
          * InfoWindow事件。{hockId:String 处理该事件的widgetId,data:Object}
          */
         INFOWINDOW_EVENT: "infowindowEvent",
         /**
          * 被选中的poi要素变更事件。事件对象Graphic Object
          */
         SELECTED_POI_GRAPHIC_CHANGED: "selectedPoiGraphicChanged",
         /**
          * 查询模式改变事件。事件对象{mode:String "poi"|"route"|nearby, ... 其他附加数据}
          */
         QUERY_MODE_CHANGED: "queryModeChanged",
         /**
          * 变更路径查询参数事件 ,由各部件派发,routeSearchWidget监听{type: "bus"|"car",start:Graphic,end:Graphic,switch:true,mid:Graphic,minIndex:Int}
          */
         CHANGE_ROUTE_ARGUMENT: "changeRouteArgument",
         /**
          * 路径查询参数已变更事件, 由routeSearchWidget派发,各部件监听 {type: "bus"|"car",start:String,end:String,mid:String,minIndex:Int}
          */
         ROUTE_ARGUMENT_CHANGED: "routeArgumentChanged",
         /**
          * 路线搜索搜索事件。事件对象:{hockId:String,type:"bus"|"car",start:Graphic,end:Graphic,...}  参考RouteManager.QueryArguments的定义
          */
         RUN_ROUTE_QUERY: "runRouteQuery",
         /**
          * 路线各途径地点搜索事件。事件对象:{hockId:String,type:"start"|"end"|"mid",poiSearchType:"poiId"|"search"|"clearState",poiId:String,keyword:String}
          */
         ROUTE_STOP_QUERY: "routeStopQuery",
         /**
          * 所有Poi搜索相关事件。事件对象:{hockId:String,type:String "statistice"|"search"|"poiId"|"updateState"|"clearState" ,poiType:String,keyword:String}
          */
         POI_SEARCH: "poiSearch",
         /**
          * 所有附近搜索搜索相关事件。事件对象:{hockId:String,type:String |"search"|"updateState"|"clearState" ,poiType:String,keyword:String}
          */
         NEARBY_SEARCH: "nearbySearch",
         /**
          * 行政区加载完毕
          */
         DISTRICT_LOADED:"districtloaded",
         /**
          * 分屏
          */
         MULTIDATE:"multidate",
         /**派发系统事件*/
         dispatchAppEvent: function(eventName, data) {
            //
            try {
               topic.publish(eventName, data);
            } catch (err) {
               console.log(err);
            }
         },
         /**监听系统事件*/
         addAppEventListener: function(eventName, handler) {
            //
            topic.subscribe(eventName, handler);
         },
         removeAppEventListener: function(handler) {
         }
      };
      return _instance;
   });