./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/DiscoverApp.java:91: // 设置swagger里面访问rest api时的basepath ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/DiscoverApp.java:93: // 必须以"/"开头,结尾可有可无"/" ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/DiscoverApp.java:112: * @Description TODO(开启对consul中ApiGateWay服务的监听和缓存) ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/DiscoverApp.java:121: // 监听服务变化 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/MicroServiceFullInfo.java:25: // 状态 0:不可用,待审核 1:可用,审核通过 2:审核失败 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/MicroServiceFullInfo.java:28: private boolean is_manual = false; // 手动注册:true; 自动注册:false ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:28: // 服务名 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:31: // 版本号 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:34: // 服务url ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:38: // 服务对应协议,比如REST、UI、MQ、FTP、SNMP、TCP、UDP ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:43: // 服务的可见范围 0:系统间 1:系统内 ,可配置多个,以 |分隔 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:47: // 负载均衡策略类型 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:51: // TCP/UDP协议监听端口 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:55: // 命名空间 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:58: // 网络平面 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:69: private boolean enable_ssl = false; // true:https:开启SSL加密, false:http ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:75: // 服务自身属性的键值对 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/Service.java:78: // 自定义标签 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/NodeInfo.java:25: private String nodeId; // node唯一标识 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/NodeInfo.java:27: private String status; // 实例健康检查状态 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/core/MicroServiceInfo.java:23: * @Description:P2PRouteInfo信息实体类 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:36: * 获取ObjectMapper实例 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:38: * @param createNew 方式:true,新实例;false,存在的mapper实例 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:49: * 将java对象转换成json字符串 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:51: * @param obj 准备转换的对象 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:52: * @return json字符串 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:71: * 将json字符串转换成java对象 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:73: * @param json 准备转换的json字符串 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:74: * @param cls 准备转换的类 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:95: * 将json字符串转换成java集合对象 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:97: * @param json 准备转换的json字符串 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:98: * @param cls 准备转换的类 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:133: * 将json字符串转换成java集合对象 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:135: * @param json 准备转换的json字符串 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/JacksonJsonUtil.java:136: * @param cls 准备转换的类 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/DiscoverUtil.java:22: * @Description: TODO(ApiRoute工具类) ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/DiscoverUtil.java:24: * @date 2015年9月29日 下午3:19:51 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/DiscoverUtil.java:95: // 多次反向代理后会有多个ip值,第一个ip才是真实ip ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/ConfigUtil.java:23: * @Description: TODO(服务发现配置项工具类) ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/ConfigUtil.java:25: * @date 2017年1月23日 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/util/HttpClientUtil.java:184: RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(10000).setConnectTimeout(10000).build();// 设置请求和传输超时时间 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/ConsulClientApp.java:68: * @Description TODO(开启某个服务的node变化监听,只返回健康状态服务) ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/ConsulClientApp.java:95: // 服务发现变化 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/ConsulClientApp.java:202: // 监听服务变化 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/PublishAddressWrapper.java:667: // 即时返回 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/PublishAddressWrapper.java:715: // 延迟监听返回 ./discovery/sdclient/discovery-service/src/main/java/org/onap/msb/sdclient/wrapper/PublishAddressWrapper.java:726: // 定义超时后的状态修改 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:17:org_onap_msb_discover_title=ZTE 微服务-服务发现 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:18:org_onap_msb_discover_banner_title= —— 微服务发现 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:19:org_onap_msb_discover_btn_mng=服务管理 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:20:org_onap_msb_discover_search_tip=请输入服务关键字 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:21:org_onap_msb_discover_btn_search=查 询 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:23:org_onap_msb_route_chinese_name=微服务 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:25:org_onap_msb_discover_form_servicelist=服务列表 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:27:org_onap_msb_discover_btn_addservice=服务注册 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:28:org_onap_msb_discover_form_service_no=序号 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:29:org_onap_msb_discover_form_servicename=服务名 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:30:org_onap_msb_discover_form_version=版本号 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:31:org_onap_msb_discover_form_protocol=服务协议 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:32:org_onap_msb_discover_form_visualrange=服务可见范围 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:33:org_onap_msb_discover_form_serviceurl=服务URL ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:34:org_onap_msb_discover_form_status=状态 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:35:org_onap_msb_discover_form_control=操作 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:38:org_onap_msb_discover_mng_title=ZTE 微服务-服务管理 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:39:org_onap_msb_discover_admin_banner_title= —— 微服务管理 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:40:org_onap_msb_discover_btn_list=服务发现 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:42:org_onap_msb_discover_searchtype_all=全部 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:43:org_onap_msb_discover_searchtype_servicename=服务名 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:44:org_onap_msb_discover_searchtype_host=服务HOST ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:45:org_onap_msb_discover_searchtype_url=服务URL ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:46:org_onap_msb_discover_searchtype_namespace=命名空间 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:48://表格相关 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:49:org_onap_msb_route-table-sLengthMenu=每页 _MENU_ 条结果 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:50:org_onap_msb_route-table-sZeroRecords=没有匹配结果 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:51:org_onap_msb_route-table-sInfo=总共找到 _TOTAL_ 条结果 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:52:org_onap_msb_route-table-sInfoEmpty=共 0 项 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:53:org_onap_msb_route-table-sGroupActions=_TOTAL_ 条结果被选择: ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:54:org_onap_msb_route-table-sAjaxRequestGeneralError=不能完成请求,请检查您的网络连接情况。 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:55:org_onap_msb_route-table-sEmptyTable=表中数据为空 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:56:org_onap_msb_route-table-sPrevious=前页 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:57:org_onap_msb_route-table-sNext=下页 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:58:org_onap_msb_route-table-sPage=第 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:59:org_onap_msb_route-table-sPageOf=页,总页数: ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:60:org_onap_msb_route-table-search=搜索: ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:61:org_onap_msb_route-table-infofilter=(从 _MAX_ 条记录过滤) ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:63:org_onap_msb_discover_err_service_del_ask=确定删除[服务名:{0} - 版本号:{1}]服务? ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:64:org_onap_msb_discover_service_del_success=服务删除成功 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:65:org_onap_msb_discover_service_del_fail=服务删除失败: ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:67:org_onap_msb_route_property_ttl=提示: ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:68:org_onap_msb_discover_property_normal=正常 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:69:org_onap_msb_discover_property_abnormal=异常 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:70:org_onap_msb_route_form_intersystem=系统间 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:71:org_onap_msb_route_form_insystem=系统内 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:73:org_onap_msb_discover_property_lb_param=负载均衡参数 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:74:org_onap_msb_discover_property_health_param=健康检查参数 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:76:org_onap_msb_route_box_btn_delete=删除 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:77:org_onap_msb_route_box_btn_update=修改 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:78:org_onap_msb_route_box_btn_view=查看 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:81:org_onap_msb_discover_form_saveinfo=服务信息保存中... ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:82:org_onap_msb_discover_form_baseinfo=基本信息 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:83:org_onap_msb_discover_form_advancedinfo=高级属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:84:org_onap_msb_discover_property_default_1=默认值:1 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:85:org_onap_msb_discover_property_default_10=默认值:10 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:86:org_onap_msb_discover_property_second=秒 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:87:org_onap_msb_route_form_btn_cancel=取消 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:88:org_onap_msb_route_form_btn_save=保存 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:89:org_onap_msb_route_form_btn_close=关闭 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:92:org_onap_msb_discover_form_version_tip=格式:v(小写)+数字 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:93:org_onap_msb_discover_form_lb=负载均衡策略 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:94:org_onap_msb_discover_form_ifpublish=是否发布到服务路由 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:95:org_onap_msb_discover_form_ifhttppublish=是否自定义发布端口 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:96:org_onap_msb_discover_form_publishport=发布端口 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:97:org_onap_msb_discover_form_publishport_range=范围:{0}-{1} ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:98:org_onap_msb_discover_form_hostlist=服务实例列表 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:99:org_onap_msb_discover_form_addhost=添加实例 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:100:org_onap_msb_discover_form_publish=服务发布地址 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:101:org_onap_msb_discover_form_target_tip=发布为 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:102:org_onap_msb_route_form_btn_reset=重置 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:103:org_onap_msb_route_form_btn_return=返回 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:104:org_onap_msb_route_form_btn_close=关闭 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:106:org_onap_msb_discover_lbpolicy_round=轮询 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:107:org_onap_msb_discover_lbpolicy_leastconn=最小连接数 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:108:org_onap_msb_discover_lbpolicy_clientcustom=客户端自定义 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:109:org_onap_msb_discover_form_title_add=服务注册 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:110:org_onap_msb_discover_form_title_update=服务修改 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:111:org_onap_msb_discover_form_title_view=服务查看 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:112:org_onap_msb_discover_node_title=添加微服务实例 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:113:org_onap_msb_discover_node_title_update=修改微服务实例 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:115:org_onap_msb_discover_validator_ttl_empty=请输入健康检查TTL值 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:116:org_onap_msb_discover_validator_interval_empty=请输入健康检查checkInterval值 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:117:org_onap_msb_discover_validator_timeOut_empty=请输入健康检查TimeOut值 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:118:org_onap_msb_discover_validator_healthurl_empty=请输入健康检查URL值 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:119:org_onap_msb_discover_err_host_repeat=服务实例({0}:{1})已存在 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:120:org_onap_msb_discover_err_host_del_ask=确定删除服务实例[{0}:{1}]? ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:121:org_onap_msb_discover_err_host_leastone=请至少输入一个实例地址 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:122:org_onap_msb_discover_err_visualrange_empty=请选择服务可见范围 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:123:org_onap_msb_discover_err_url_empty=协议为{0}的服务:URL地址不能为空 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:124:org_onap_msb_discover_err_service_repeat=MSB服务(服务名:{0},协议:{1},命名空间:{2})已发布 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:126://输入效验提示 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:127:org_onap_msb_discover_validator_ip_format=请填写正确的IP地址 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:128:org_onap_msb_discover_validator_url_head_format=url地址以/开头,不能以/结尾 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:129:org_onap_msb_discover_validator_url_head_only_format=url地址以/开头 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:130:org_onap_msb_discover_validator_url_format=服务地址格式:ip:port/url ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:131:org_onap_msb_discover_validator_url_line_format=名称不能包含/ ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:132:org_onap_msb_discover_validator_content_format=名称不能输入特殊符号和中文 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:133:org_onap_msb_discover_validator_name_empty=请输入服务名 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:134:org_onap_msb_discover_validator_url_empty=请输入URL地址 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:135:org_onap_msb_discover_validator_server_empty=请输入服务器地址 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:136:org_onap_msb_discover_validator_protocol_empty=请选择服务协议 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:137:org_onap_msb_discover_validator_type_empty=请选择服务类型 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:138:org_onap_msb_discover_validator_digits=请输入整数 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:139:org_onap_msb_discover_validator_min=不能为负数 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:140:org_onap_msb_discover_validator_zero=不能为负数或0 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:141:org_onap_msb_discover_validator_host_ip_empty=请输入实例IP ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:142:org_onap_msb_discover_validator_host_port_empty=请输入实例Port ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:144:org_onap_msb_discover_form_namespace=命名空间 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:145:org_onap_msb_discover_form_networkPlaneType=网络平面 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:146:org_onap_msb_discover_form_networkPlaneType_tip=多个请用|分隔 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:147:org_onap_msb_discover_form_publish_port_tip=多个请用|分隔(https|http) ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:148:org_onap_msb_discover_property_ha_role=主备状态 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:150:org_onap_msb_discover_form_labels=服务标签 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:151:org_onap_msb_discover_form_labels_tip=格式key:value,按回车键添加新标签,双击标签修改 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:152:org_onap_msb_discover_err_label_format=服务标签格式有误,标签格式key:value ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:154:org_onap_msb_discover_form_metadata_tip=格式key:value,按回车键添加,双击修改 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:155:org_onap_msb_discover_err_metadata_format=MetaData格式有误,格式key:value ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:157:org_onap_msb_discover_validator_healthurl_http=HTTP健康检查URL值须以http://开头 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:158:org_onap_msb_discover_validator_healthurl_tcp=TCP健康检查URL格式:IP|域名:Port ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:159:org_onap_msb_discover_err_namespace_err=命名空间:{0}为系统配置,不允许输入 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-zh-CN.properties:161:org_onap_msb_discover_validator_publish_port_format=端口格式有误,多个请用|分隔 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/loadi18nApp_iui-discover_view.js:20: path:propertiesFilePath, // 资源文件路径 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/loadi18nApp_iui-discover_view.js:21: mode:'map', // 用 Map 的方式使用资源文件中的值 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/loadi18nApp_iui-discover_view.js:22: callback: function() {// 加载成功后设置显示内容 ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/loadi18nApp_iui-discover_view.js:29: /** id存在时元素内容需要国际化,title存在时元素title需要国际化 */ ./discovery/discovery-ui/src/main/resources/iui/microservices/i18n/msb-iui-discover-i18n-en-US.properties:140:org_onap_msb_discover_validator_digits=Please enter a number为系统配置,不允许输入 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/bootbox/bootbox.min.js:21:!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d(a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),a.backdrop=a.backdrop?"static":!1,c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"",header:"",footer:"",closeButton:"",form:"
",inputs:{text:"",textarea:"",email:"",select:"",checkbox:"
",date:"",time:"",number:"",password:""}},o={locale:"en",backdrop:!0,animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback():!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback(!1)},a.buttons.confirm.callback=function(){return a.callback(!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback(null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback(c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("").attr("label",d.group)),e=o[d.group]),e.append("")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("
"),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var c=b(n.dialog),d=c.find(".modal-dialog"),f=c.find(".modal-body"),i=a.buttons,j="",k={onEscape:a.onEscape};if(g(i,function(a,b){j+="",k[a]=b.callback}),f.find(".bootbox-body").html(a.message),a.animate===!0&&c.addClass("fade"),a.className&&c.addClass(a.className),"large"===a.size&&d.addClass("modal-lg"),"small"===a.size&&d.addClass("modal-sm"),a.title&&f.before(n.header),a.closeButton){var l=b(n.closeButton);a.title?c.find(".modal-header").prepend(l):l.css("margin-top","-10px").prependTo(f)}return a.title&&c.find(".modal-title").html(a.title),j.length&&(f.after(n.footer),c.find(".modal-footer").html(j)),c.on("hidden.bs.modal",function(a){a.target===this&&c.remove()}),c.on("shown.bs.modal",function(){c.find(".btn-primary:first").focus()}),c.on("escape.close.bb",function(a){k.onEscape&&e(a,c,k.onEscape)}),c.on("click",".modal-footer button",function(a){var d=b(this).data("bb-handler");e(a,c,k[d])}),c.on("click",".bootbox-close-button",function(a){e(a,c,k.onEscape)}),c.on("keyup",function(a){27===a.which&&c.trigger("escape.close.bb")}),b(a.container).append(c),c.modal({backdrop:a.backdrop,keyboard:!1,show:!1}),a.show&&c.modal("show"),c},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.init=function(c){return a(c||b)},p}); ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.min.js:19:!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"このフィールドは必須です。",remote:"このフィールドを修正してください。",email:"有効なEメールアドレスを入力してください。",url:"有効なURLを入力してください。",date:"有効な日付を入力してください。",dateISO:"有効な日付(ISO)を入力してください。",number:"有効な数字を入力してください。",digits:"数字のみを入力してください。",creditcard:"有効なクレジットカード番号を入力してください。",equalTo:"同じ値をもう一度入力してください。",extension:"有効な拡張子を含む値を入力してください。",maxlength:a.validator.format("{0} 文字以内で入力してください。"),minlength:a.validator.format("{0} 文字以上で入力してください。"),rangelength:a.validator.format("{0} 文字から {1} 文字までの値を入力してください。"),range:a.validator.format("{0} から {1} までの値を入力してください。"),max:a.validator.format("{0} 以下の値を入力してください。"),min:a.validator.format("{0} 以上の値を入力してください。")})}); ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:26: * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:29: required: "必须填写", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:30: remote: "请修正此栏位", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:31: email: "请输入有效的电子邮件", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:32: url: "请输入有效的网址", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:33: date: "请输入有效的日期", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:34: dateISO: "请输入有效的日期 (YYYY-MM-DD)", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:35: number: "请输入正确的数字", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:36: digits: "只可输入数字", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:37: creditcard: "请输入有效的信用卡号码", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:38: equalTo: "你的输入不相同", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:39: extension: "请输入有效的后缀", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:40: maxlength: $.validator.format("最多 {0} 个字"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:41: minlength: $.validator.format("最少 {0} 个字"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:42: rangelength: $.validator.format("请输入长度为 {0} 至 {1} 之間的字串"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:43: range: $.validator.format("请输入 {0} 至 {1} 之间的数值"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:44: max: $.validator.format("请输入不大于 {0} 的数值"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.js:45: min: $.validator.format("请输入不小于 {0} 的数值") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh.min.js:19:!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"必须填写",remote:"请修正此栏位",email:"请输入有效的电子邮件",url:"请输入有效的网址",date:"请输入有效的日期",dateISO:"请输入有效的日期 (YYYY-MM-DD)",number:"请输入正确的数字",digits:"只可输入数字",creditcard:"请输入有效的信用卡号码",equalTo:"你的输入不相同",extension:"请输入有效的后缀",maxlength:a.validator.format("最多 {0} 个字"),minlength:a.validator.format("最少 {0} 个字"),rangelength:a.validator.format("请输入长度为 {0} 至 {1} 之間的字串"),range:a.validator.format("请输入 {0} 至 {1} 之间的数值"),max:a.validator.format("请输入不大于 {0} 的数值"),min:a.validator.format("请输入不小于 {0} 的数值")})}); ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:26: * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:30: required: "必須填寫", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:31: remote: "請修正此欄位", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:32: email: "請輸入有效的電子郵件", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:33: url: "請輸入有效的網址", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:34: date: "請輸入有效的日期", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:35: dateISO: "請輸入有效的日期 (YYYY-MM-DD)", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:36: number: "請輸入正確的數值", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:37: digits: "只可輸入數字", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:38: creditcard: "請輸入有效的信用卡號碼", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:39: equalTo: "請重複輸入一次", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:40: extension: "請輸入有效的後綴", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:41: maxlength: $.validator.format("最多 {0} 個字"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:42: minlength: $.validator.format("最少 {0} 個字"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:43: rangelength: $.validator.format("請輸入長度為 {0} 至 {1} 之間的字串"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:44: range: $.validator.format("請輸入 {0} 至 {1} 之間的數值"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:45: max: $.validator.format("請輸入不大於 {0} 的數值"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.js:46: min: $.validator.format("請輸入不小於 {0} 的數值") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:26: * Locale: JA (Japanese; 日本語) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:29: required: "このフィールドは必須です。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:30: remote: "このフィールドを修正してください。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:31: email: "有効なEメールアドレスを入力してください。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:32: url: "有効なURLを入力してください。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:33: date: "有効な日付を入力してください。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:34: dateISO: "有効な日付(ISO)を入力してください。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:35: number: "有効な数字を入力してください。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:36: digits: "数字のみを入力してください。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:37: creditcard: "有効なクレジットカード番号を入力してください。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:38: equalTo: "同じ値をもう一度入力してください。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:39: extension: "有効な拡張子を含む値を入力してください。", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:40: maxlength: $.validator.format("{0} 文字以内で入力してください。"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:41: minlength: $.validator.format("{0} 文字以上で入力してください。"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:42: rangelength: $.validator.format("{0} 文字から {1} 文字までの値を入力してください。"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:43: range: $.validator.format("{0} から {1} までの値を入力してください。"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:44: max: $.validator.format("{0} 以下の値を入力してください。"), ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_ja.js:45: min: $.validator.format("{0} 以上の値を入力してください。") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery-validation/localization/messages_zh_TW.min.js:19:!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"必須填寫",remote:"請修正此欄位",email:"請輸入有效的電子郵件",url:"請輸入有效的網址",date:"請輸入有效的日期",dateISO:"請輸入有效的日期 (YYYY-MM-DD)",number:"請輸入正確的數值",digits:"只可輸入數字",creditcard:"請輸入有效的信用卡號碼",equalTo:"請重複輸入一次",extension:"請輸入有效的後綴",maxlength:a.validator.format("最多 {0} 個字"),minlength:a.validator.format("最少 {0} 個字"),rangelength:a.validator.format("請輸入長度為 {0} 至 {1} 之間的字串"),range:a.validator.format("請輸入 {0} 至 {1} 之間的數值"),max:a.validator.format("請輸入不大於 {0} 的數值"),min:a.validator.format("請輸入不小於 {0} 的數值")})}); ./discovery/discovery-ui/src/main/resources/iui/microservices/js/serviceController.js:387: //健康检查规则效验 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/serviceController.js:478: //判断host是否重复 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/serviceController.js:512: vm.nodeInfo.port!=vm.oldNodeInfo.port) //已修改IP或者port ./discovery/discovery-ui/src/main/resources/iui/microservices/js/serviceController.js:515: //判断host是否重复 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/serviceController.js:763: //正则判断标签格式正确性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/serviceController.js:850: //TCP|UDP协议对外端口判断 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/serviceController.js:858: //唯一性判断 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/serviceController.js:865: vm.server_rtn.rtn_info= "发布端口("+vm.msbRouteInfo.publish_port+")已使用"; ./discovery/discovery-ui/src/main/resources/iui/microservices/js/serviceController.js:903: //判断服务名是否重复 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:17: Copyright (c) 2013-2015 司徒正美 and other contributors ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:49: * 全局变量及方法 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:54:var head = DOC.getElementsByTagName("head")[0] //HEAD元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:55:var ifGroup = head.insertBefore(document.createElement("avalon"), head.firstChild) //避免IE6 base标签BUG ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:59:var rnative = /\[native code\]/ //判定是否原生函数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:73:var rword = /[^, ]+/g //切割字符串为一个个小块,以空格或豆号分开它们,结合replace实现字符串的forEach ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:82:var Registry = {} //将函数曝光到此对象上,方便访问器收集依赖 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:109://生成UUID http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:124:avalon = function (el) { //创建jQuery式的无new 实例化结构 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:134:/*视浏览器情况采用最快的异步回调*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:181: * avalon的静态方法定义区 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:188:avalon.type = function (obj) { //取得目标的类型 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:192: // 早期的webkit内核浏览器实现了已废弃的ecma262v4标准,可以将正则字面量当作函数使用,因此typeof在判定正则时会返回function ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:212: // 利用IE678 window == document为true,document == window竟然为false的神奇特性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:213: // 标准浏览器及IE9,IE10等使用 正则检测 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:227:var enumerateBUG = enu !== "0" //IE6下为true, 其他为false ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:228:/*判定是否是一个朴素的javascript对象(Object),不是DOM对象,不是BOM对象,不是自定义类的实例*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:233: try { //IE内置对象没有constructor ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:237: } catch (e) { //IE8 9会在这里抛错 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:251: // 简单的 typeof obj === "object"检测,会致使用isPlainObject(window)在opera下通不过 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:255://与jQuery.extend方法,可用于浅拷贝,深拷贝 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:263: // 如果第一个参数为布尔,判定是否深拷贝 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:270: //确保接受方为一个复杂的数据类型 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:275: //如果只有一个参数,那么新成员添加于mix所在的对象上 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:282: //只处理非空参数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:287: copy = options[name] //当options为VBS对象时报错 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:292: // 防止环引用 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:316:function _number(a, len) { //用于模拟slice, splice的效果 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:343: /*如果不用Error对象封装一下,str在控制台下可能会乱码*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:347: /*将一个以空格或逗号隔开的字符串或数组,转换成一个键值都为1的对象*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:359: range: function (start, end, step) { // 用于生成整数数组 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:375: /*绑定事件*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:395: /*卸载事件*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:412: /*读写删除元素节点的样式*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:419: if (value === void 0 || typeof value === "boolean") { //获取样式 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:426: } else if (value === "") { //请除样式 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:428: } else { //设置样式 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:439: /*遍历数组与对象,回调的第一个参数为索引或键名,第二个或元素或键值*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:441: if (obj) { //排除null, undefined ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:457: //收集元素的data-{{prefix}}-*属性,并转换为对象 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:471: /*只有当前数组不存在此元素时只添加它*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:477: /*移除数组中指定位置的元素,返回布尔表示成功与否*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:481: /*移除数组中第一个匹配传参的那个元素,返回布尔表示成功与否*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:494:/*判定是否类数组,如节点集合,纯数组,arguments与拥有非负整数的length属性的纯JS对象*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:499: if (n === (n >>> 0)) { //检测length属性是否为非负整数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:506: if ({}.propertyIsEnumerable.call(obj, "length") === false) { //如果是原生对象 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:510: } catch (e) { //IE的NodeList直接抛错 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:592: * javascript 底层补丁 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:594:if (!"司徒正美".trim) { ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:676: //定位操作,返回数组中第一个等于给定参数的元素的索引值。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:687: //定位操作,同上,不过是从后遍历。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:698: //迭代操作,将数组的元素挨个儿传入一个函数中执行。Prototype.js的对应名字为each。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:700: //迭代类 在数组中的每个项上运行一个函数,如果此函数的值为真,则此元素作为新数组的元素收集起来,并返回新数组 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:702: //收集操作,将数组的元素挨个儿传入一个函数中执行,然后把它们的返回值组成一个新数组返回。Prototype.js的对应名字为collect。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:704: //只要数组中有一个元素满足条件(放进给定函数返回true),那么它就返回true。Prototype.js的对应名字为any。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:706: //只有数组中的元素都满足条件(放进给定函数返回true),它才返回true。Prototype.js的对应名字为all。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:711: * DOM 底层补丁 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:715: try { //IE6-8,游离于DOM树外的文本节点,访问parentNode有时会抛错 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:725://IE6-11的文档对象没有contains ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:737: //safari5+是把contains方法放在Element.prototype上而不是Node.prototype ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:739: Node.prototype.contains = function (arg) {//IE6-8没有Node对象 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:755: svg.setAttribute(attr.name, attr.value) //复制属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:757: // 递归处理子节点 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:765: "outerHTML": {//IE9-11,firefox不支持SVG元素的innerHTML,outerHTML属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:773: // 操作的svg,直接插入 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:776: // svg节点的子节点类似 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:805:if (!root.outerHTML && window.HTMLElement) { //firefox 到11时才有outerHTML ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:830: ret.preventDefault = function () { //阻止默认行为 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:833: ret.stopPropagation = function () { //阻止事件在DOM树中的传播 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:840://针对firefox, chrome修正mouseenter, mouseleave ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:861://针对IE9+, w3c修正animationend ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:872://针对IE6-8修正input ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:887: /* IE6-11 chrome mousewheel wheelDetla 下 -120 上 120 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:888: firefox DOMMouseScroll detail 下3 上-3 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:889: firefox wheel detlaY 下3 上-3 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:890: IE9-11 wheel deltaY 下40 上-40 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:891: chrome wheel deltaY 下100 上-100 */ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:914: * 配置系统 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:936: //将字符串安全格式化为正则表达式的源码 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:954: throw new SyntaxError("此定界符不合法") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:988: * 事件总线 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:999: } else { //重新开始监听此VM的第一重简单属性的变动 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1006: if (n === 0) { //让此VM的所有$watch回调无效化 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1052: //循环两个vmodel中的节点,查找匹配(向上匹配或者向下匹配)的节点并设置标识 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1056: var ok = special === "down" ? element.contains(node) : //向下捕获 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1057: node.contains(element) //向上冒泡 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1059: node._avalon = v //符合条件的加一个标识 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1067: var nodes = DOC.getElementsByTagName("*") //实现节点排序 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1102://avalon最核心的方法的两个方法之一(另一个是avalon.scan),返回一个ViewModel(VM) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1103:var VMODELS = avalon.vmodels = {} //所有vmodel都储存在这里 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1107: log("warning: vm必须指定$id") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1110: log("warning: " + $id + " 已经存在于avalon.vmodels中") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1118: factory(scope) //得到所有定义 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1120: model = modelFactory(scope) //偷天换日,将scope换为model ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1129://一些不需要被监听的属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1133://如果浏览器不支持ecma262v5的Object.defineProperties或者存在BUG,比如IE8 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1134://标准浏览器使用__defineGetter__, __defineSetter__实现 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1152: //0 null undefined || Node || VModel(fix IE6-8 createWithProxy $val: val引发的BUG) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1157: $skipArray.$special = $special || {} //强制要监听的属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1158: var $vmodel = {} //要返回的对象, 它在IE6-8下可能被偷龙转凤 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1159: $model = $model || {} //vmodels.$model属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1160: var $events = {} //vmodel.$events属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1161: var accessors = {} //监控属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1172: //总共产生三种accessor ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1175: //总共产生三种accessor ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1189: $vmodel = defineProperties($vmodel, descriptorFactory(accessors), source) //生成一个空的ViewModel ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1196: //添加$id, $model, $events, $watch, $unwatch, $fire ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1203: if (!W3C) { //在IE6-8下,VB对象的方法里的this并不指向自身,需要用bind处理一下 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1226: callback: function (vm, dependency) {//dependency为一个accessor ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1253://创建一个简单访问器 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1273://创建一个计算访问器 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1275: function accessor(value) {//计算属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1287: $events[name] = [] //清空回调,防止内部冒泡而触发多次$fire ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1293: accessor.notify(this, value, oldValue) //触发$watch回调 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1299: //将依赖于自己的高层访问器或视图刷新函数(以绑定对象形式)放到自己的订阅数组中 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1300: //将自己注入到低层访问器的订阅数组中 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1304: accessor.notify(this, value, oldValue) //触发$watch回调 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1315://创建一个复杂访问器 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1382: var array = vmodel.$events[name] //刷新值 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1384: fireDependencies(array) //同步视图 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1385: EventBus.$fire.call(vmodel, name, value, oldValue) //触发$watch回调 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1391: //同时更新_value与model ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1396://比较两个值是否相等 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1436://===================修复浏览器对Object.defineProperties的支持================= ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1465: "End Function" //转换一段文本为VB代码 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1482: "\t\tSet [__const__] = Me", //链式调用 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1484: //添加普通属性,因为VBScript对象不能像JS那样随意增删属性,必须在这里预先定义好 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1496: //添加访问器属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1499: //由于不知对方会传入什么,因此set, let都用上 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1507: "\tOn Error Resume Next", //必须优先使用set语句,否则它会误将数组当字符串返回 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1524: "Function " + className + "Factory(a, b)", //创建实例并传入两个关键的参数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1532: var ret = window[className + "Factory"](accessors, VBMediator) //得到其产品 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1533: return ret //得到其产品 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1539: * 监控数组(与ms-each, ms-repeat配合使用) * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1545: array.$model = model //数据模型 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1604: size: function () { //取得数组长度,这个函数可以同步视图,length不能 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1630: return m + n //IE67的unshift不会返回长度 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1636: return el //返回被移除的元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1644: return el //返回被移除的元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1650: if (removed.length) { //如果用户删掉了元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1654: if (m > 2) { //如果用户添加了元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1662: if (change) { //返回被移除的元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1668: contains: function (el) { //判定是否包含 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1671: remove: function (el) { //移除第一个等于给定值的元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1674: removeAt: function (index) { //移除指定索引上的元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1682: this.$model.length = this.length = this._.length = 0 //清空数组 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1686: removeAll: function (all) { //移除N个元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1705: if (!this.contains(el)) { //只有不存在才push ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1734://相当于原来bindingExecutors.repeat 的index分支 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1760: var newArray = this.$model//这是要排序的新数组 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1761: var oldArray = newArray.concat() //保持原来状态的旧数组 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1765: ap[method].apply(newArray, arguments) //排序 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1773: indexes.push(index)//得到新数组的每个元素在旧数组对应的位置 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1774: oldArray[index] = mask //屏蔽已经找过的元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1790: * 依赖调度系统 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1792://检测两个对象间的依赖关系 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1798: //accessorObject为一个拥有callback的对象 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1807: //被dependencyDetection.begin调用 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1813://将绑定对象注入到其依赖项的订阅数组中 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1817: if (valueFn) { //如果是求值函数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1847://将依赖项(比它高层的访问器或构建视图刷新函数的绑定对象)注入到订阅者数组 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1856://通知依赖于这个访问器的订阅者更新自身 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1869: fn.handler.apply(fn, args) //处理监控数组的方法 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1870: }else if("$repeat" in fn || !valueFn ){//如果没有eval,先eval ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1872: } else if (fn.type !== "on") { //事件绑定只能由用户触发,不能由程序触发 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1882: * 定时GC回收机制 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1889:function getUid(obj, makeID) { //IE9+,标准浏览器 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1899://添加到回收列队中 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1926: //对页面上所有绑定对象进行分门别类, 只检测个数发生变化的类型 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1948: if (iffishTypes[data.type] && shouldDispose(data.element)) { //如果它没有在DOM树 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1974: try {//IE下,如果文本节点脱离DOM树,访问parentNode会报错 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1986: * HTML处理(parseHTML, innerHTML, clearHTML) * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:1999: //IE6-8在用innerHTML生成节点时,不能直接创建no-scope元素与HTML5的新标签 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2000: _default: W3C ? [0, "", ""] : [1, "X
", "
"] //div可以不用闭合 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2006: tagHooks[tag] = tagHooks.g //处理SVG ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2008:var rtagName = /<([\w:]+)/ //取得其tagName ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2012:var rnest = /<(?:tb|td|tf|th|tr|col|opt|leg|cap|area)/ //需要处理套嵌关系的标签 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2026: //取得其标签名 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2031: html = html.replace(rcreate, "
$1") //在link style script等标签之前添加一个补丁 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2035: if (els.length) { //使用innerHTML生成的script节点不会发出请求与执行text属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2038: //以偷龙转凤方式恢复执行脚本功能 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2039: neo = script.cloneNode(false) //FF不能省略参数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2042: neo[attr.name] = attr.value //复制其属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2047: el.parentNode.replaceChild(neo, el) //替换节点 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2054: //IE6-7处理 --> , ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2077: //移除我们为了符合套嵌关系而添加的标签 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2080: while (firstChild = wrapper.firstChild) { // 将wrapper上的节点转移到文档碎片上! ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2118: * avalon的原型方法定义区 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2122: //转换为连字符线风格 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2127: //提前判断,提高getStyle等的效率 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2131: //转换为驼峰风格 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2159: //SVG元素的className是一个对象 SVGAnimatedString { baseVal="", animVal=""},只能通过set/getAttribute操作 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2164: } //toggle存在版本差异,因此不使用它 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2266: offsetParent = this.offsetParent() //得到真正的offsetParent ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2267: offset = this.offset() // 得到正确的offsetParent ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2291: if (this[0]) { //此方法不会链 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2349://生成avalon.fn.scrollLeft, avalon.fn.scrollTop方法 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2372://=============================css相关======================= ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2394: try { //node.style.width = NaN;node.style.width = "xxxxxxx";node.style.width = undefine 在旧式IE下会抛异常 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2401: throw new Error("getComputedStyle要求传入一个节点 " + node) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2407: ret = node.style[name] //其他浏览器需要我们手动取内联样式 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2428: //取得精确值,不过它有可能是带em,pc,mm,pt,%等单位 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2432: //①,保存原有的style.left, runtimeStyle.left, ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2436: //②由于③处的style.left = xxx会影响到currentStyle.left, ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2437: //因此把它currentStyle.left放到runtimeStyle.left, ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2438: //runtimeStyle.left拥有最高优先级,不会style.left影响 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2440: //③将精确值赋给到style.left,然后通过IE的另一个私有属性 style.pixelLeft ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2441: //得到单位为px的结果;fontSize的分支见http://bugs.jquery.com/ticket/760 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2444: //④还原 style.left,runtimeStyle.left ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2450: //border width 默认值为medium,即使其为0" ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2462: //不能使用以下方式设置透明度 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2472: //这是最快的获取IE透明值的方式,不需要动用正则了! ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2475: return (op / 100) + "" //确保返回的是字符串 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2497: if (node.offsetWidth <= 0) { //opera.offsetWidth可能小于0 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2551: avalon.fn[method] = function(value) { //会忽视其display ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2554: if (node.setTimeout) { //取得窗口尺寸,IE9后可以用node.innerWidth /innerHeight代替 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2557: if (node.nodeType === 9) { //取得页面尺寸 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2560: //IE 标准模式 : html.scrollHeight> body.scrollHeight ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2561: //IE 怪异模式 : html.scrollHeight 最大等于可视窗口多一点? ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2576: avalon.fn.offset = function() { //取得距离页面左右角的坐标 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2592: //http://hkom.blog1.fc2.com/?mode=m&no=750 body的偏移量是不包含margin的 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2593: //我们可以通过getBoundingClientRect来获得元素相对于client的rect. ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2603: // 把滚动距离加到left,top中去。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2604: // IE一些版本中会自动为HTML元素加上2px的border,我们需要去掉它 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2612: //==================================val相关============================ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2621: //在IE11及W3C,如果没有指定value,那么node.value默认为node.text(存在trim作),但IE9-10则是取innerHTML(没trim操作) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2622: //specified并不可靠,因此通过分析outerHTML判定用户有没有显示定义value ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2637: //旧式IE在reset后不会改变selected,需要改用i === index判定 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2638: //我们过滤所有disabled的option元素,但在safari5下,如果设置select为disable,那么其所有孩子都disable ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2639: //因此当一个元素为disable,需要检测其是否显式设置了disable及其父节点的disable情况 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2645: //收集所有selected值组成数组返回 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2652: values = [].concat(values) //强制转换为数组 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2666: * 编译系统 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2688: "throw,true,try,typeof,var,void,while,with", /* 关键字*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2692: "throws,transient,volatile", /*保留字*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2715:/*添加赋值语句*/ ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2745://缓存求值函数,以便多次利用 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2747://取得求值函数及其传参 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2757: .replace(rthimRightParentheses, "")//处理最后的小括号 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2758: .replace(rthimOtherParentheses, function () {//处理其他小括号 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2761: .replace(rquoteFilterName, function (a, b) { //处理|及它后面的过滤器的名字 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2784: //args 是一个对象数组, names 是将要生成的求值函数的参数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2806: if (c === "." || c === "[" || method) {//比如v为aa,我们只匹配aa.bb,aa[cc],不匹配aaa.xxx ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2830: var fn = evaluatorPool.get(exprId) //直接从缓存,免得重复生成 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2839: if (/\S/.test(filters)) { //文本绑定,双工绑定才有过滤器 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2841: throw Error("ms-" + data.type + "不支持过滤器") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2845: } else if (dataType === "duplex") { //双工绑定 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2859: } else if (dataType === "on") { //事件绑定 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2866: code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2871: } else { //其他绑定 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2872: code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2880: vars = assigns = names = null //释放内存 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2885://parseExpr的智能引用代理 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2896: //方便调试 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2897: //这里非常重要,我们通过判定视图刷新函数的element是否在DOM树决定 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2898: //将它移出订阅者列表 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2904: * 扫描系统 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2950: if (data.evaluator && data.element && data.element.nodeType === 1) { //移除数据绑定,防止被二次解析 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:2951: //chrome使用removeAttributeNode移除不存在的特性节点时会报错 https://github.com/RubyLouvre/avalon/issues/99 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3005: //如果是以指定前缀命名的 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3014: if (type === "enabled") {//吃掉ms-enabled绑定,用ms-disabled代替 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3015: log("warning!ms-enabled或ms-attr-enabled已经被废弃") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3036: //chrome与firefox下Number(param)得到的值不一样 #855 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3063: log("warning!请改用" + arr[1] + "代替" + arr[0] + "!") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3068: //在IE下对VML读取type属性,会让此元素所有属性都变成 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3071: log("warning!一个控件不能同时定义ms-attr-checked与" + hasDuplex) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3074: log("warning!一个控件不能同时定义ms-attr-value与" + hasDuplex) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3090: scanNodeList(elem, vmodels) //扫描子孙元素 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3095://IE67下,在循环绑定中,一个节点如果是通过cloneNode得到,自定义属性的specified为false,无法进入里面的分支, ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3096://但如果我们去掉scanAttr中的attr.specified检测,一个元素会有80+个特性节点(因为它不区分固有属性与自定义属性),很容易卡死页面 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3103: //IE6-8解析HTML5新标签,会将它分解两个元素节点与一个文本节点 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3111: //依次输出
,
./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3114: //处理IE6-8解析HTML5新标签的情况,及
等半闭合标签outerHTML为空的情况 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3153: scanTag(node, vmodels) //扫描元素节点 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3161: scanText(node, vmodels, i) //扫描文本节点 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3170: //扫描顺序 ms-skip(0) --> ms-important(1) --> ms-controller(2) --> ms-if(10) --> ms-repeat(100) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3171: //--> ms-if-loop(110) --> ms-attr(970) ...--> ms-each(1400)-->ms-with(1500)--〉ms-duplex(2000)垫后 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3173: //#360 在旧式IE中 Object标签在引入Flash等资源时,可能出现没有getAttributeNode,innerHTML的情形 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3186: //ms-important不包含父VM,ms-controller相反 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3189: elem.removeAttribute(name) //removeAttributeNode不会刷新[ms-controller]样式规则 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3193: scanAttr(elem, vmodels) //扫描特性节点 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3205: var index = scapegoat.replace(r11a, "\u1122\u3344").indexOf("|") //干掉所有短路或 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3231: if (value) { // {{ 左边的文本 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3244: if (value) { //处理{{ }}插值表达式 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3250: if (value) { //}} 右边的文本 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3265: var node = DOC.createTextNode(token.value) //将文本转换为文本节点,并替换原来的文本节点 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3278: bindings.push(token) //收集带有插值表达式的文本 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3298:var propMap = { //属性名映射 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3353: data.handlerName = "attr" //handleName用于处理多种绑定共用同一种bindingExecutor的情况 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3364: // ms-attr-class="xxx" vm.xxx="aaa bbb ccc"将元素的className设置为aaa bbb ccc ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3365: // ms-attr-class="xxx" vm.xxx=false 清空元素的所有类名 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3366: // ms-attr-name="yyy" vm.yyy="ooo" 为元素设置name属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3369: if (!W3C && propMap[attrName]) { //旧式IE下需要进行名字映射 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3374: elem[bool] = !! val //布尔属性必须使用el.xxx = true|false方式设值 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3375: if (!val) { //如果为false, IE全系列下相当于setAttribute(xxx,''),会影响到样式,需要进一步处理 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3382: //SVG只能使用setAttribute(xxx, yyy), VML只能使用elem.xxx = yyy ,HTML的固有属性必须elem.xxx = yyy ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3436: } else if (Array.isArray(templatePool[val])) { //#805 防止在循环绑定中发出许多相同的请求 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3461: //IE系列与够新的标准浏览器支持通过ID取得元素(firefox14+) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3465: if (el.tagName === "NOSCRIPT" && !(el.innerHTML || el.fixIE78)) { //IE7-8 innerText,innerHTML都无法取得其内容,IE6能取得其innerHTML ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3466: xhr = getXHR() //IE9-11与chrome的innerHTML会得到转义的内容,它们的innerText可以 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3467: xhr.open("GET", location, false) //谢谢Nodejs 乱炖群 深圳-纯属虚构 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3475: if (tag) { //IE6-8中noscript标签的innerHTML,innerText是只读的 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3488: val = val.replace(/&/g, "&") //处理IE67自动转义的问题 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3492: var parent = elem.parentNode //#525 chrome1-37下embed标签动态设置src不能发生请求 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3513://这几个指令都可以使用插值表达式,如ms-src="aaa/{{b}}/{{c}}.html" ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3517://根据VM的属性值或表达式的值切换类名,ms-class="xxx yyy zzz:flag" ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3525: data.param = "" //去掉数字 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3528: //return Math.pow(10, a.length - 1) //将插值表达式插入10的N-1次方来占位 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3530: var colonIndex = noExpr.indexOf(":") //取得第一个冒号的位置 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3531: if (colonIndex === -1) { // 比如 ms-class="aaa bbb ccc" 的情况 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3533: } else { // 比如 ms-class-1="ui-state-active:checked" 的情况 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3536: parseExpr(rightExpr, vmodels, data) //决定是添加还是删除 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3538: log("debug: ms-class '" + (rightExpr || "").trim() + "' 不存在于VM中") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3545: var hasExpr = rexpr.test(className) //比如ms-class="width{{w}}"的情况 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3559: if (method === "class" && data.oldStyle) { //如果是旧风格 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3562: //如果存在冒号就有求值函数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3575: if (!data.hasBindEvent) { //确保只绑定一次 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3576: var activate = "mouseenter" //在移出移入时切换类名 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3578: if (method === "active") { //在聚焦失焦中切换类名 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3607://ms-controller绑定已经在scanTag 方法中实现 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3608://ms-css绑定已由ms-attr绑定实现 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3611:// bindingHandlers.data 定义在if.js ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3620://双工绑定 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3639: log("ms-duplex-radio已经更名为ms-duplex-checked") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3645: log("ms-duplex-bool已经更名为ms-duplex-boolean") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3648: log("ms-duplex-text已经更名为ms-duplex-string") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3682://不存在 bindingExecutors.duplex ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3694: get: function(val) { //同步到VM ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3769: Object.getOwnPropertyNames(inputProto) //故意引发IE6-8等浏览器报错 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3780: //在chrome 43中 ms-duplex终于不需要使用定时器实现双向绑定了 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3795://处理radio, checkbox, text, textarea, password ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3813: //当value变化时改变model的值 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3815: if (composing) //处理中文输入法在minlengh下引发的BUG ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3817: var val = element.oldValue = element.value //防止递归调用形成死循环 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3829: //当model变化时,它就会改变value的值 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3851: //IE8 checkbox, radio是使用defaultChecked控制选中状态, ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3852: //并且要先设置defaultChecked后设置checked ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3853: //并且必须设置延迟 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3868: log("ms-duplex应用于checkbox上要对应一个数组") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3878: var array = [].concat(evaluator()) //强制转换为数组 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3886: log("data-event指令已经废弃,请改用data-duplex-event") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3899: //非IE浏览器才用这个 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3903: } else { //onpropertychange事件无法区分是程序触发还是用户触发 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3904: // IE下通过selectionchange事件监听IE9+点击input右边的X的清空行为,及粘贴,剪切,删除行为 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3906: bound("input", updateVModel) //IE9使用propertychange无法监听中文输入改动 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3908: bound("propertychange", function(e) { //IE6-8下第一次修改时不会触发,需要使用keydown或selectionchange修正 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3956: var val = $elem.val() //字符串或字符串数组 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3975: log("ms-duplex在不能对应一个数组") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3982: //必须变成字符串后才能比较 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:3995:// bindingHandlers.html 定义在if.js ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4016: } else if (val.nodeType === 11) { //将val转换为文档碎片 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4027: //插入占位符, 如果是过滤器,需要有节制地移除指定的数量,如果是html指令,直接清空 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4056: if (val) { //插回DOM树 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4060: elem = data.element = data.template //这时可能为null ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4067: } else { //移出DOM树,并用注释节点占据原位置 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4072: data.template = elem //元素节点 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4082://ms-important绑定已经在scanTag 方法中实现 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4083://ms-include绑定已由ms-attr绑定实现 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4095: if (matched === "" || matched === "$event") { // aaa() aaa($event)当成aaa处理 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4135: avalon.log("warning:" + data.value + "只能是对象或数组") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4229: case "add": //在pos位置后添加el数组(pos为插入位置,el为要插入的个数) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4247: avalon.profile("插入操作花费了 " + (new Date - now)) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4249: case "del": //将pos后的el个元素删掉(pos, el都是数字) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4288: case "index": //将proxies中的第pos个起的所有元素重新索引 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4296: case "set": //将proxies中的第pos个元素的VM设置为el(pos为数字,el任意) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4303: var object = data.$repeat //原来第2参数, 被循环对象 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4304: var oldProxy = object.$proxy //代理对象组成的hash ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4332: //将现有的节点全部移出DOM树 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4343: for (var key in object) { //当前对象的所有键名 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4350: if (!pool.hasOwnProperty(key)) {//添加缺失的代理VM ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4358: if (keys.indexOf(key) === -1) {//删除没用的代理VM ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4359: proxyRecycler(pool[key], withProxyPool) //去掉之前的代理VM ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4364: var renderKeys = keys //需要渲染到DOM树去的键名 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4366: if (data.sortedCallback) { //如果有回调,则让它们排序 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4397: avalon.profile("插入操作花费了 " + (new Date - now)) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4400: if (!data.$repeat || data.$repeat.hasOwnProperty("$lock")) //IE6-8 VBScript对象会报错, 有时候data.$repeat不存在 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4443://移除掉start与end之间的节点(保留end) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4457:// 为ms-each,ms-with, ms-repeat会创建一个代理VM, ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4458:// 通过它们保持一个下上文,让用户能调用$index,$first,$last,$remove,$key,$val,$outer等属性与方法 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4459:// 所有代理VM的产生,消费,收集,存放通过xxxProxyFactory,xxxProxyAgent, recycleProxies,xxxProxyPool实现 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4526: e.$index = e[name] //#817 通过$index为el收集依赖 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4597: * 各种指令 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4599://ms-skip绑定已经在scanTag 方法中实现 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4600:// bindingHandlers.text 定义在if.js ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4602: val = val == null ? "" : val //不在页面上显示undefined null ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4603: if (elem.nodeType === 3) { //绑定在文本节点上 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4604: try { //IE对游离于DOM树外的节点赋值会报错 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4607: } else { //绑定在特性节点上 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4616: //用于取得此类标签的默认display值 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4652: if (!id || id === "$") { //没有定义或为$时,取组件名+随机数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4655: var optName = args[2] || widget //没有定义,取组件名 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4669: log("warning!不再支持" + widget + "Id") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4673: //抽取data-tooltip-text、data-tooltip-attr属性,组成一个配置对象 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4681: var vmodel = constructor(elem, data, vmodels) || {} //防止组件不返回VM ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4710: } else if (vmodels.length) { //如果该组件还没有加载,那么保存当前的vmodels ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4715://不存在 bindingExecutors.widget ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4717: * 自带过滤器 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4732: //number 必需,要格式化的数字 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4733: //decimals 可选,规定多少个小数位。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4734: //point 可选,规定用作小数点的字符串(默认为 . )。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4735: //thousands 可选,规定用作千位分隔符的字符串(默认为 , ),如果设置了该参数,那么所有其他参数都是必需的。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4772: //length,新字符串长度,truncation,新字符串的结尾的字段,返回新字符串 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4798: if (match) { //处理a标签的href属性,img标签的src属性,form标签的action属性 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4807: return a.replace(ron, " ").replace(/\s+/g, " ") //移除onXXX事件 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4811: //将字符串经过 str 转义得到适合在页面中显示的内容, 例如替换 < 为 < ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4908: //取得上午下午 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4955: //取得年月日 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4958: dateArray[0] = toInt(array[0]) //年 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4959: dateArray[1] = toInt(array[1]) - 1 //月 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4960: dateArray[2] = toInt(array[2]) //日 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4966: dateArray[3] = toInt(a) //小时 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4967: dateArray[4] = toInt(b) //分钟 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4968: dateArray[5] = toInt(c) //秒 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:4969: if (d) { //毫秒 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5017: 0: "上午", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5018: 1: "下午" ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5021: 0: "星期日", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5022: 1: "星期一", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5023: 2: "星期二", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5024: 3: "星期三", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5025: 4: "星期四", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5026: 5: "星期五", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5027: 6: "星期六" ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5030: 0: "1月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5031: 1: "2月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5032: 2: "3月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5033: 3: "4月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5034: 4: "5月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5035: 5: "6月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5036: 6: "7月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5037: 7: "8月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5038: 8: "9月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5039: 9: "10月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5040: 10: "11月", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5041: 11: "12月" ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5044: "0": "周日", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5045: "1": "周一", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5046: "2": "周二", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5047: "3": "周三", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5048: "4": "周四", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5049: "5": "周五", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5050: "6": "周六" ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5052: fullDate: "y年M月d日EEEE", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5053: longDate: "y年M月d日", ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5065: * AMD加载器 * ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5079://Object(modules[id]).state拥有如下值 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5080:// undefined 没有定义 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5081:// 1(send) 已经发出请求 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5082:// 2(loading) 已经被执行但还没有执行完成,在这个阶段define方法会被执行 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5083:// 3(loaded) 执行完毕,通过onload/onreadystatechange回调判定,在这个阶段checkDeps方法会执行 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5084:// 4(execute) 其依赖也执行完毕, 值放到exports对象上,在这个阶段fireFactory方法会执行 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5088: var loadings = [] //正在加载中的模块列表 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5089: var factorys = [] //放置define方法的factory函数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5092://1. 去掉资源前缀 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5099: log("debug: ready!已经被废弃,请使用domReady!") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5102://2. 去掉querystring, hash ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5108: //3. 去掉扩展名 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5133: //1. 如果该模块已经发出请求,直接返回 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5169://核心API之一 require ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5186: avalon.error("require方法的第一个参数应为数组 " + array) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5188: var deps = [] // 放置所有依赖项的完整路径 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5204: var url = fireRequest(req) //加载资源,并返回该资源的完整地址 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5208: uniq[url] = "司徒正美" //去重 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5224: //如果此模块是定义在另一个JS文件中, 那必须等该文件加载完毕, 才能放到检测列队中 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5230://核心API之二 require ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5231: innerRequire.define = function (name, deps, factory) { //模块名,依赖列表,模块本身 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5242: built: !isUserFirstRequire, //用r.js打包后,所有define会放到requirejs之前 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5256: avalon.error(url + "模块与之前的模块存在循环依赖,请不要直接用script标签引入" + url + "模块") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5259: delete factory.require //释放内存 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5262://根据标准,所有遵循W3C标准的浏览器,script标签会按标签的出现顺序执行。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5263://老的浏览器中,加载也是按顺序的:一个文件下载完成后,才开始下载下一个文件。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5264://较新的浏览器中(IE8+ 、FireFox3.5+ 、Chrome4+ 、Safari4+),为了减小请求时间以优化体验, ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5265://下载可以是并行的,但是执行顺序还是按照标签出现的顺序。 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5266://但如果script标签是动态插入的, 就未必按照先请求先执行的原则了,目测只有firefox遵守 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5267://唯一比较一致的是,IE10+及其他标准浏览器,一旦开始解析脚本, 就会一直堵在那里,直接脚本解析完毕 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5268://亦即,先进入loading阶段的script标签(模块)必然会先进入loaded阶段 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5276: } else {//合并前后的safari,合并后的IE6-9走此分支 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5280://核心API之三 require.config(settings) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5282: //核心API之四 define.amd 标识其符合AMD规范 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5285: //==========================对用户配置项进行再加工========================== ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5361: //==============================内部方法================================= ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5363: //检测是否存在循环依赖 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5373: var id = trimQuery(node.src) //检测是否死链 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5378: node = null // 处理旧式IE下的循环引用问题 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5380: log("debug: 加载 " + id + " 失败" + onError + " " + (!modules[id].state)) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5387: //检测此JS模块的依赖是否都已安装完毕,是则安装自身 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5398: //如果deps是空对象或者其依赖的模块的状态都是2 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5400: loadings.splice(i, 1) //必须先移除再安装,防止在IE下DOM树建完后手动刷新页面,会多次执行它 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5402: checkDeps() //如果成功,则再执行一次,以防有些模块就差本模块没有安装好 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5409: //通过script节点加载目标模块 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5411: node.className = subscribers //让getCurrentScript只处理类名为subscribers的script节点 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5421: log("debug: 已成功加载 " + url) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5442: head.insertBefore(node, head.firstChild) //chrome下第二个参数不能为null ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5443: node.src = url //插入到head的第一个节点前,防止IE6下head标签没闭合前使用appendChild抛错 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5444: log("debug: 正准备加载 " + url) //更重要的是IE6下可以收窄getCurrentScript的寻找范围 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5448: //三大常用资源插件 js!, css!, text!, ready! ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5457: if (shim) { //shim机制 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5476: log("debug: 已成功加载 " + url) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5488: avalon.error(url + " 对应资源不存在或没有开启 CORS") ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5490: log("debug: 已成功加载 " + url) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5498: if ("withCredentials" in xhr) {//这是处理跨域 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5501: xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest")//告诉后端这是AJAX请求 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5503: log("debug: 正准备加载 " + url) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5527: a.b.c() //强制报错,以便捕获e.stack ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5528: } catch (e) { //safari5的sourceURL,firefox的fileName,它们的效果与e.stack不一样 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5531: //opera 9没有e.stack,但有e.Backtrace,但不能直接取得,需要对e对象转字符串进行抽取 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5536: /**e.stack最后一行在所有支持的浏览器大致如下: ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5545: * //firefox4+ 可以用document.currentScript ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5547: stack = stack.split(/[@ ]/g).pop() //取得最后一行,最后一个空格或@之后的部分 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5548: stack = stack[0] === "(" ? stack.slice(1, -1) : stack.replace(/\s/, "") //去掉换行符 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5549: return trimQuery(stack.replace(/(:\d+)?:\d+$/i, "")) //去掉行号与或许存在的出错字符起始位置 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5551: var nodes = head.getElementsByTagName("script") //只在head标签中寻找 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5575: log("执行[" + id + "]模块的factory抛错: ", e) ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5588: id = id.slice(this.res.length + 1) //处理define("css!style",[], function(){})的情况 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5591: //1. 是否命中paths配置项 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5599: //2. 是否命中packages配置项 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5605: //3. 是否命中map配置项 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5618: //4. 转换为绝对路径 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5623: //5. 还原扩展名,query ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5626: //6. 处理urlArgs ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5635: //创建一个经过特殊算法排好序的数组 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5683: // 根据元素的name项进行数组字符数逆序的排序函数 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5701: if (b.slice(0, 2) === "./") { //相对于兄弟路径 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5704: if (b.slice(0, 2) === "..") { //相对于父路径 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5758: try { //IE下通过doScrollCheck检测DOM树是否建完 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/avalon.js:5767: setTimeout(fireReady) //如果在domReady之外加载 ./discovery/discovery-ui/src/main/resources/iui/microservices/js/routeUtil.js:370: //vm.targetServiceUrl+="(ns:"+vm.msbRouteInfo.namespace+") 未匹配到对应apigateway
"; ./discovery/discovery-ui/src/main/resources/iui/microservices/js/jquery.i18n/jquery.i18n.properties-1.0.9.js:90: // 将寻找资源文件的顺序倒置 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/api/RouteInfo.java:55: private boolean enable_ssl = false; // true:https:开启SSL加密, false:http ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/api/MicroServiceFullInfo.java:57: private boolean enable_ssl = false; // true:https:开启SSL加密, false:http ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/api/MicroServiceFullInfo.java:59: private String custom; // PORTAL协议标志 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:194: * @Description TODO(判断服务实例的健康检查信息,全部为passing表示健康检查有效) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:196: * @return boolean checkList示例——"Checks" : [{ "Node" : "server", "CheckID" : "serfHealth", ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:223: * @Description TODO(判断来自consul的服务信息是否需要过滤) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:225: * @return boolean tagList示例—— [ ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:239: // 针对多版本不同属性的tag会有多个,只要其中一个匹配即通过过滤,默认不通过 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:247: // 提取基础属性tag ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:271: // 提取命名空间属性tag ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:289: // 提取Label属性tag ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:292: // 自定义label标签属性 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:300: labelMap.remove("visualRange"); // 自定义标签排除可见范围和网络平面 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:325: // 针对无命名空间的服务判断是否过滤 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:345: // 同名多版本服务MAP ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:474: // 系统间apigateway 保存publish_port ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:486: // 默认node是注册信息的IP和port ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:489: // 同名多版本同步 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/ServiceFilter.java:496: * // 健康检查信息 List checks = value.getChecks(); node.setStatus("passing"); for ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/HttpClientUtil.java:229: RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(10000).setConnectTimeout(10000).build();// 设置请求和传输超时时间 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/util/RouteUtil.java:291: * @Description TODO(根据服务名和命名空间拆分服务路由名) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/consulextend/cache/ConsulCache.java:277: // 第一次不打印 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/consulextend/expose/ConsulIndexFilter.java:42: // 第一次不打印 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/consulextend/expose/ServiceModifyIndexFilter.java:51: // 1)判断list的size,不等则改变 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/consulextend/expose/ServiceModifyIndexFilter.java:53: // 第一次不打印 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/consulextend/expose/ServiceModifyIndexFilter.java:63: // 2)循环服务实例判断服务内容和健康检查是否改变 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/consulextend/expose/ServiceModifyIndexFilter.java:66: // 若在oldlist中不存在,则改变 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/consulextend/expose/ServiceModifyIndexFilter.java:76: // 若在oldlist中存在,则比较ModifyIndex的值和健康检查状态.不等则改变 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:56: // 1.按path优先判断类型 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:60: // 2.1 域名判断url ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:64: // 2.2 按协议优先判断类型 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:83: // 1.按path优先判断类型 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:87: // 2.1 域名判断url ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:91: // 2.2 按协议优先判断类型 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:100: // 判断按协议发布地址是否和注册的URL一致,如果一致发布地址保存为/,否则保存为协议类型的发布地址 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:151: * @Description TODO(按用户注册协议保存服务) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:190: * @Description TODO(按用户注册协议删除服务) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:253: * @Description TODO(按URL地址判断服务协议并保存到路由表) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:280: // 根据url获取服务名 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:303: * @Description TODO(按URL地址判断服务协议并从路由表删除) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:311: // 根据Url格式判断服务类型 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:344: // 根据url获取服务名 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:391: * @Description TODO(获取HTTP服务路由名) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:414: // host为空,取默认规则 服务名-ns ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:456: // 获取服务的host ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:484: // Portal协议处理 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:493: // 自定义开启SSL处理 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:500: // 针对custom=portal场景的域名路由使用apigateway发布地址作为node ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:562: // 默认 HttpProtocol和PublishProtocol=http ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:567: // 获取服务的host ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:579: // 获取服务的发布端口(支持多端口格式:https|http) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:631: // 获取服务的host ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:650: // 获取服务的发布端口(支持多端口格式:https|http) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:697: // 获取服务的host ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/serviceListener/MicroServiceChangeListener.java:715: // 获取服务的发布端口(支持多端口格式:https|http) ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/route/bean/RouteInfo.java:41: * //是否使用该服务独立的upstream转发 "publishProtocol" : "", //发布地址使用http还是http协议 "enable_ssl" : "0|1", ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/route/bean/RouteInfo.java:42: * //转发时,使用http还是http转发。http:0/https:1 "controll" : "", //是否可以修改 "nodes" : [{ "ip" : 10.10.10.2, ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/ServiceInfo.java:40: * "enable_ssl" : "0|1", //转发时,使用http还是http转发。http:0/https:1 "nodes" : [{ "ip" : 10.10.10.2, ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceConsumer.java:43: // 缓存服务信息:key:服务名 和对应的版本列表Set ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceConsumer.java:65: // 删除服务 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceConsumer.java:68: // 更新服务 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceConsumer.java:98: // 删除失败,重试三次 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceConsumer.java:145: // 删除数据库中已不存在的版本号服务信息 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceConsumer.java:178: // 更新失败,重置任务服务的modifyIndex,等待重新更新 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListQueue.java:41: // 先清空队列 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListQueue.java:45: // 插入记录 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListQueue.java:57: * //取队列最新一条数据 if (queue.isEmpty()) { ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListQueue.java:60: * ArrayList>>>(); //一次性从BlockingQueue获取所有数据 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java:53: // 取最新一条记录 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java:109: // 对比删除redis脏数据 ./apigateway/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/queue/ServiceListConsumer.java:124: // 启动同步开启监听全部服务列表 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:16:////合并hk.min.js ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:839: * 初始化脚本文件装载工具 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:846: * 创建命名空间 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:853: //document.window浏览器内置对象 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:862: // 存放对象 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:864: // 返回 last part name (例如:classname) ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:872: * 启动配置类 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:880: //用户应用当前目录 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:884: //组件库目录 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:888: //用户i18文件目录 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:893: //当前语言 默认为英语 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:898: //从服务端取客户端接受语言类型 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:903: * 创建XMLHttpRequest对象 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:917: * 同步发送xml http 请求 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:941: * 同步发送xml http 请求(给外部调用) ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:975: * 取得浏览器语言信息 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:991: var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:992: var search =decodeURIComponent(location.search.substring(1)); //decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:993: var r =search.match(reg); //匹配目标参数 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:994: if (r != null) return unescape(r[2]); //unescape() 函数可对通过 escape() 编码的字符串进行解码。 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:995: return null; //返回参数值 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:1001://创建命名空间 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:1003://创建基础配置对象实例 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:1034:// 定义JQUERY AJAX 完成函数,判断返回状态,如果状态正常,但HEADER头里有session超时信息,则刷新重登录 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:1035:// 如果状态为 401, 也刷新重登录 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:1036:// 注意如果在$.ajax() 函数中定义了 complete,则覆盖了这里预定义complete内容,以$.ajax()函数中定义的为准,这里预定义的函数则失效,如果 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:1037:// 要继续判断session超时,则需要在 $.ajax()函数中定义的complete函数中加入这里预定义内容。 ./apigateway/apiroute/apiroute-service/src/main/resources/api-doc/js/tools.js:1045: // var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); ////通过XMLHttpRequest取得响应头,sessionstatus, ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:16:org_onap_msb_route_title=微服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:18:org_onap_msb_route_sideBar_serviceroute=服务路由 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:19:org_onap_msb_route_sideBar_servicediscover=服务发现 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:20:org_onap_msb_route_sideBar_servicemng=服务管理 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:21:org_onap_msb_route_sideBar_serviceregister=服务注册 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:22:org_onap_msb_route_sideBar_service_status=服务监控 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:24:org_onap_msb_route_chinese_name=微服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:27:org_onap_msb_route_banner_title= —— 微服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:28:org_onap_msb_route_btn_export=服务导出 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:29:org_onap_msb_route_tab_api=API服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:30:org_onap_msb_route_tab_iui=IUI服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:31:org_onap_msb_route_tab_custom=自定义服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:32:org_onap_msb_route_tab_msb=MSB服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:33:org_onap_msb_route_btn_add_api=添加API服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:34:org_onap_msb_route_form_sourceservice=源服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:35:org_onap_msb_route_form_address=服务器地址 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:36:org_onap_msb_route_form_host_tip=添加host地址(格式 IP:Port) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:37:org_onap_msb_route_form_node_no=序号 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:38:org_onap_msb_route_form_node_control=操作 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:39:org_onap_msb_route_form_url=URL地址 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:40:org_onap_msb_route_form_target_tip=发布为 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:41:org_onap_msb_route_form_target_service=发布服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:42:org_onap_msb_route_form_servicename=服务名 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:43:org_onap_msb_route_form_version=版本号 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:44:org_onap_msb_route_form_version_tip=格式:v(小写)+数字 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:45:org_onap_msb_route_form_swagger=API定义 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:46:org_onap_msb_route_form_swagger_address=API地址 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:47:org_onap_msb_route_form_target_address=目标地址: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:48:org_onap_msb_route_form_publish_address=发布地址: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:49:org_onap_msb_route_form_metrics=性能指标定义 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:50:org_onap_msb_route_form_metrics_address=性能指标地址 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:51:org_onap_msb_route_form_btn_cancel=取消 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:52:org_onap_msb_route_form_btn_save=保存 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:53:org_onap_msb_route_form_btn_close=关闭 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:55:org_onap_msb_route_box_version=版本: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:56:org_onap_msb_route_box_btn_disable=禁用 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:57:org_onap_msb_route_box_btn_able=启用 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:58:org_onap_msb_route_box_btn_delete=删除 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:59:org_onap_msb_route_box_btn_update=修改 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:60:org_onap_msb_route_form_btn_addhost=添加Host ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:61:org_onap_msb_route_form_btn_delhost=删除Host ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:62:org_onap_msb_route_box_btn_view=查看 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:64:org_onap_msb_route_btn_add_iui=添加IUI服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:65:org_onap_msb_route_form_iui_tip=目标服务同时注册对应Api服务才能通过此地址访问 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:66:org_onap_msb_route_btn_add_custom=添加自定义服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:67:org_onap_msb_route_btn_add_msb=添加MSB服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:68:org_onap_msb_route_form_protocol=服务协议 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:69:org_onap_msb_route_form_visualrange=服务可见范围 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:70:org_onap_msb_route_form_intersystem=系统间 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:71:org_onap_msb_route_form_insystem=系统内 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:72:org_onap_msb_route_form_msb_host=服务HOST ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:73:org_onap_msb_route_form_ttl_tip=添加TTL数字 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:75:org_onap_msb_route_servicecontent_swagger=接口 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:76:org_onap_msb_route_servicecontent_metrics=性能 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:78:org_onap_msb_route_msb_info=基本信息 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:79:org_onap_msb_route_msb_hostlist=服务实例列表 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:81:org_onap_msb_route_content_title=微服务详情 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:82:org_onap_msb_route_swagger_type_predefined=预定义选择 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:83:org_onap_msb_route_swagger_type_custominput=自定义输入 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:86://表格相关 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:87:org_onap_msb_route-table-sLengthMenu=每页 _MENU_ 条结果 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:88:org_onap_msb_route-table-sZeroRecords=没有匹配结果 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:89:org_onap_msb_route-table-sInfo=总共找到 _TOTAL_ 条结果 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:90:org_onap_msb_route-table-sInfoEmpty=共 0 项 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:91:org_onap_msb_route-table-sGroupActions=_TOTAL_ 条结果被选择: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:92:org_onap_msb_route-table-sAjaxRequestGeneralError=不能完成请求,请检查您的网络连接情况。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:93:org_onap_msb_route-table-sEmptyTable=表中数据为空 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:94:org_onap_msb_route-table-sPrevious=前页 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:95:org_onap_msb_route-table-sNext=下页 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:96:org_onap_msb_route-table-sPage=第 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:97:org_onap_msb_route-table-sPageOf=页,总页数: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:98:org_onap_msb_route-table-search=搜索: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:99:org_onap_msb_route-table-infofilter=(从 _MAX_ 条记录过滤) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:101:org_onap_msb_route_err_host_empty=新增HOST不能为空 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:102:org_onap_msb_route_err_ttl_empty=新增HOST的TTL不能为空 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:103:org_onap_msb_route_err_host_format=HOST格式有误(格式 ip:port) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:104:org_onap_msb_route_err_ttl_format=TTL只能为数字 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:105:org_onap_msb_route_err_host_repeat=服务(HOST:{0})已存在 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:106:org_onap_msb_route_err_host_del=确定删除[HOST:{0}:{1}]? ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:108:org_onap_msb_route_title_add_msb=添加MSB服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:109:org_onap_msb_route_title_edit_msb=修改MSB服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:110:org_onap_msb_route_title_view_msb=查看MSB服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:111:org_onap_msb_route_title_add_iui=添加IUI服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:112:org_onap_msb_route_title_edit_iui=修改IUI服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:113:org_onap_msb_route_title_view_iui=查看IUI服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:114:org_onap_msb_route_title_add_api=添加API服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:115:org_onap_msb_route_title_edit_api=修改API服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:116:org_onap_msb_route_title_view_api=查看API服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:117:org_onap_msb_route_title_add_custom=添加自定义服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:118:org_onap_msb_route_title_edit_custom=修改自定义服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:119:org_onap_msb_route_title_view_custom=查看自定义服务实例 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:120:org_onap_msb_route_err_service_repeat=服务(服务名:{0})已发布 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:121:org_onap_msb_route_err_api_repeat=服务(服务名:{0}-版本号:{1})已发布 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:122:org_onap_msb_route_err_service_del_ask=确定删除[服务名:{0} - 版本号:{1}]服务? ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:123:org_onap_msb_route_err_service2_del_ask=确定删除[服务名:{0}]服务? ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:124:org_onap_msb_route_err_service_save=服务保存失败: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:125:org_onap_msb_route_service_save=保存成功 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:126:org_onap_msb_route_service_update=修改成功 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:127:org_onap_msb_route_err_host_leastone=请至少输入一个HOST地址 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:128:org_onap_msb_route_err_visualrange_empty=请选择服务可见范围 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:129:org_onap_msb_route_status_enable=激活成功 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:130:org_onap_msb_route_status_disable=禁用成功 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:131:org_onap_msb_route_err_status=服务状态操作失败: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:133:org_onap_msb_route_service_del_success=删除成功 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:134:org_onap_msb_route_service_del_fail=服务删除失败: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:136:org_onap_msb_route_metric_content_title=性能详情 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:137:org_onap_msb_route_iui_content_title=IUI服务详情 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:139://输入效验提示 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:140:org_onap_msb_route_validator_ip_format=请填写正确的IP地址 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:141:org_onap_msb_route_validator_url_head_format=url地址以/开头,不能以/结尾 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:142:org_onap_msb_route_validator_url_head_only_format=url地址以/开头 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:143:org_onap_msb_route_validator_url_format=服务地址格式:ip:port/url ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:144:org_onap_msb_route_validator_url_line_format=名称不能包含/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:145:org_onap_msb_route_validator_content_format=名称不能输入特殊符号和中文 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:146:org_onap_msb_route_validator_name_empty=请输入服务名 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:147:org_onap_msb_route_validator_url_empty=请输入URL地址 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:148:org_onap_msb_route_validator_server_empty=请输入服务器地址 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:149:org_onap_msb_route_validator_protocol_empty=请选择服务协议 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:150:org_onap_msb_route_validator_type_empty=请选择服务类型 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:151:org_onap_msb_route_validator_digits=请输入整数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:152:org_onap_msb_route_validator_min=不能为负数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:155:org_onap_msb_route_property_ttl=提示: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:156:org_onap_msb_route_property_root=根服务 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:157:org_onap_msb_route_property_other_group=其他 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:158:org_onap_msb_route_property_normal=正常 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:159:org_onap_msb_route_property_disable=停用 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/msb-iui-route-i18n-zh-CN.properties:160:org_onap_msb_route_property_unknown=未知 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/loadi18nApp_iui-route_view.js:20: path:propertiesFilePath, // 资源文件路径 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/loadi18nApp_iui-route_view.js:21: mode:'map', // 用 Map 的方式使用资源文件中的值 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/loadi18nApp_iui-route_view.js:22: callback: function() {// 加载成功后设置显示内容 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/i18n/loadi18nApp_iui-route_view.js:29: /** id存在时元素内容需要国际化,title存在时元素title需要国际化 */ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/bootbox/bootbox.min.js:6:!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.bootbox=b(a.jQuery)}(this,function a(b,c){"use strict";function d(a){var b=q[o.locale];return b?b[a]:q.en[a]}function e(a,c,d){a.stopPropagation(),a.preventDefault();var e=b.isFunction(d)&&d(a)===!1;e||c.modal("hide")}function f(a){var b,c=0;for(b in a)c++;return c}function g(a,c){var d=0;b.each(a,function(a,b){c(a,b,d++)})}function h(a){var c,d;if("object"!=typeof a)throw new Error("Please supply an object of options");if(!a.message)throw new Error("Please specify a message");return a=b.extend({},o,a),a.buttons||(a.buttons={}),a.backdrop=a.backdrop?"static":!1,c=a.buttons,d=f(c),g(c,function(a,e,f){if(b.isFunction(e)&&(e=c[a]={callback:e}),"object"!==b.type(e))throw new Error("button with key "+a+" must be an object");e.label||(e.label=a),e.className||(e.className=2>=d&&f===d-1?"btn-primary":"btn-default")}),a}function i(a,b){var c=a.length,d={};if(1>c||c>2)throw new Error("Invalid argument length");return 2===c||"string"==typeof a[0]?(d[b[0]]=a[0],d[b[1]]=a[1]):d=a[0],d}function j(a,c,d){return b.extend(!0,{},a,i(c,d))}function k(a,b,c,d){var e={className:"bootbox-"+a,buttons:l.apply(null,b)};return m(j(e,d,c),b)}function l(){for(var a={},b=0,c=arguments.length;c>b;b++){var e=arguments[b],f=e.toLowerCase(),g=e.toUpperCase();a[f]={label:d(g)}}return a}function m(a,b){var d={};return g(b,function(a,b){d[b]=!0}),g(a.buttons,function(a){if(d[a]===c)throw new Error("button key "+a+" is not allowed (options are "+b.join("\n")+")")}),a}var n={dialog:"",header:"",footer:"",closeButton:"",form:"
",inputs:{text:"",textarea:"",email:"",select:"",checkbox:"
",date:"",time:"",number:"",password:""}},o={locale:"en",backdrop:!0,animate:!0,className:null,closeButton:!0,show:!0,container:"body"},p={};p.alert=function(){var a;if(a=k("alert",["ok"],["message","callback"],arguments),a.callback&&!b.isFunction(a.callback))throw new Error("alert requires callback property to be a function when provided");return a.buttons.ok.callback=a.onEscape=function(){return b.isFunction(a.callback)?a.callback():!0},p.dialog(a)},p.confirm=function(){var a;if(a=k("confirm",["cancel","confirm"],["message","callback"],arguments),a.buttons.cancel.callback=a.onEscape=function(){return a.callback(!1)},a.buttons.confirm.callback=function(){return a.callback(!0)},!b.isFunction(a.callback))throw new Error("confirm requires a callback");return p.dialog(a)},p.prompt=function(){var a,d,e,f,h,i,k;if(f=b(n.form),d={className:"bootbox-prompt",buttons:l("cancel","confirm"),value:"",inputType:"text"},a=m(j(d,arguments,["title","callback"]),["cancel","confirm"]),i=a.show===c?!0:a.show,a.message=f,a.buttons.cancel.callback=a.onEscape=function(){return a.callback(null)},a.buttons.confirm.callback=function(){var c;switch(a.inputType){case"text":case"textarea":case"email":case"select":case"date":case"time":case"number":case"password":c=h.val();break;case"checkbox":var d=h.find("input:checked");c=[],g(d,function(a,d){c.push(b(d).val())})}return a.callback(c)},a.show=!1,!a.title)throw new Error("prompt requires a title");if(!b.isFunction(a.callback))throw new Error("prompt requires a callback");if(!n.inputs[a.inputType])throw new Error("invalid prompt type");switch(h=b(n.inputs[a.inputType]),a.inputType){case"text":case"textarea":case"email":case"date":case"time":case"number":case"password":h.val(a.value);break;case"select":var o={};if(k=a.inputOptions||[],!k.length)throw new Error("prompt with select requires options");g(k,function(a,d){var e=h;if(d.value===c||d.text===c)throw new Error("given options in wrong format");d.group&&(o[d.group]||(o[d.group]=b("").attr("label",d.group)),e=o[d.group]),e.append("")}),g(o,function(a,b){h.append(b)}),h.val(a.value);break;case"checkbox":var q=b.isArray(a.value)?a.value:[a.value];if(k=a.inputOptions||[],!k.length)throw new Error("prompt with checkbox requires options");if(!k[0].value||!k[0].text)throw new Error("given options in wrong format");h=b("
"),g(k,function(c,d){var e=b(n.inputs[a.inputType]);e.find("input").attr("value",d.value),e.find("label").append(d.text),g(q,function(a,b){b===d.value&&e.find("input").prop("checked",!0)}),h.append(e)})}return a.placeholder&&h.attr("placeholder",a.placeholder),a.pattern&&h.attr("pattern",a.pattern),f.append(h),f.on("submit",function(a){a.preventDefault(),a.stopPropagation(),e.find(".btn-primary").click()}),e=p.dialog(a),e.off("shown.bs.modal"),e.on("shown.bs.modal",function(){h.focus()}),i===!0&&e.modal("show"),e},p.dialog=function(a){a=h(a);var c=b(n.dialog),d=c.find(".modal-dialog"),f=c.find(".modal-body"),i=a.buttons,j="",k={onEscape:a.onEscape};if(g(i,function(a,b){j+="",k[a]=b.callback}),f.find(".bootbox-body").html(a.message),a.animate===!0&&c.addClass("fade"),a.className&&c.addClass(a.className),"large"===a.size&&d.addClass("modal-lg"),"small"===a.size&&d.addClass("modal-sm"),a.title&&f.before(n.header),a.closeButton){var l=b(n.closeButton);a.title?c.find(".modal-header").prepend(l):l.css("margin-top","-10px").prependTo(f)}return a.title&&c.find(".modal-title").html(a.title),j.length&&(f.after(n.footer),c.find(".modal-footer").html(j)),c.on("hidden.bs.modal",function(a){a.target===this&&c.remove()}),c.on("shown.bs.modal",function(){c.find(".btn-primary:first").focus()}),c.on("escape.close.bb",function(a){k.onEscape&&e(a,c,k.onEscape)}),c.on("click",".modal-footer button",function(a){var d=b(this).data("bb-handler");e(a,c,k[d])}),c.on("click",".bootbox-close-button",function(a){e(a,c,k.onEscape)}),c.on("keyup",function(a){27===a.which&&c.trigger("escape.close.bb")}),b(a.container).append(c),c.modal({backdrop:a.backdrop,keyboard:!1,show:!1}),a.show&&c.modal("show"),c},p.setDefaults=function(){var a={};2===arguments.length?a[arguments[0]]=arguments[1]:a=arguments[0],b.extend(o,a)},p.hideAll=function(){return b(".bootbox").modal("hide"),p};var q={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},cs:{OK:"OK",CANCEL:"Zrušit",CONFIRM:"Potvrdit"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},el:{OK:"Εντάξει",CANCEL:"Ακύρωση",CONFIRM:"Επιβεβαίωση"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},et:{OK:"OK",CANCEL:"Katkesta",CONFIRM:"OK"},fi:{OK:"OK",CANCEL:"Peruuta",CONFIRM:"OK"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},he:{OK:"אישור",CANCEL:"ביטול",CONFIRM:"אישור"},id:{OK:"OK",CANCEL:"Batal",CONFIRM:"OK"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},ja:{OK:"OK",CANCEL:"キャンセル",CONFIRM:"確認"},lt:{OK:"Gerai",CANCEL:"Atšaukti",CONFIRM:"Patvirtinti"},lv:{OK:"Labi",CANCEL:"Atcelt",CONFIRM:"Apstiprināt"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},no:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},pt:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Confirmar"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},sv:{OK:"OK",CANCEL:"Avbryt",CONFIRM:"OK"},tr:{OK:"Tamam",CANCEL:"İptal",CONFIRM:"Onayla"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return p.init=function(c){return a(c||b)},p}); ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.min.js:4:!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"このフィールドは必須です。",remote:"このフィールドを修正してください。",email:"有効なEメールアドレスを入力してください。",url:"有効なURLを入力してください。",date:"有効な日付を入力してください。",dateISO:"有効な日付(ISO)を入力してください。",number:"有効な数字を入力してください。",digits:"数字のみを入力してください。",creditcard:"有効なクレジットカード番号を入力してください。",equalTo:"同じ値をもう一度入力してください。",extension:"有効な拡張子を含む値を入力してください。",maxlength:a.validator.format("{0} 文字以内で入力してください。"),minlength:a.validator.format("{0} 文字以上で入力してください。"),rangelength:a.validator.format("{0} 文字から {1} 文字までの値を入力してください。"),range:a.validator.format("{0} から {1} までの値を入力してください。"),max:a.validator.format("{0} 以下の値を入力してください。"),min:a.validator.format("{0} 以上の値を入力してください。")})}); ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:11: * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:14: required: "必须填写", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:15: remote: "请修正此栏位", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:16: email: "请输入有效的电子邮件", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:17: url: "请输入有效的网址", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:18: date: "请输入有效的日期", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:19: dateISO: "请输入有效的日期 (YYYY-MM-DD)", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:20: number: "请输入正确的数字", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:21: digits: "只可输入数字", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:22: creditcard: "请输入有效的信用卡号码", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:23: equalTo: "你的输入不相同", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:24: extension: "请输入有效的后缀", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:25: maxlength: $.validator.format("最多 {0} 个字"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:26: minlength: $.validator.format("最少 {0} 个字"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:27: rangelength: $.validator.format("请输入长度为 {0} 至 {1} 之間的字串"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:28: range: $.validator.format("请输入 {0} 至 {1} 之间的数值"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:29: max: $.validator.format("请输入不大于 {0} 的数值"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.js:30: min: $.validator.format("请输入不小于 {0} 的数值") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh.min.js:4:!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"必须填写",remote:"请修正此栏位",email:"请输入有效的电子邮件",url:"请输入有效的网址",date:"请输入有效的日期",dateISO:"请输入有效的日期 (YYYY-MM-DD)",number:"请输入正确的数字",digits:"只可输入数字",creditcard:"请输入有效的信用卡号码",equalTo:"你的输入不相同",extension:"请输入有效的后缀",maxlength:a.validator.format("最多 {0} 个字"),minlength:a.validator.format("最少 {0} 个字"),rangelength:a.validator.format("请输入长度为 {0} 至 {1} 之間的字串"),range:a.validator.format("请输入 {0} 至 {1} 之间的数值"),max:a.validator.format("请输入不大于 {0} 的数值"),min:a.validator.format("请输入不小于 {0} 的数值")})}); ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:11: * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:15: required: "必須填寫", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:16: remote: "請修正此欄位", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:17: email: "請輸入有效的電子郵件", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:18: url: "請輸入有效的網址", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:19: date: "請輸入有效的日期", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:20: dateISO: "請輸入有效的日期 (YYYY-MM-DD)", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:21: number: "請輸入正確的數值", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:22: digits: "只可輸入數字", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:23: creditcard: "請輸入有效的信用卡號碼", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:24: equalTo: "請重複輸入一次", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:25: extension: "請輸入有效的後綴", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:26: maxlength: $.validator.format("最多 {0} 個字"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:27: minlength: $.validator.format("最少 {0} 個字"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:28: rangelength: $.validator.format("請輸入長度為 {0} 至 {1} 之間的字串"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:29: range: $.validator.format("請輸入 {0} 至 {1} 之間的數值"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:30: max: $.validator.format("請輸入不大於 {0} 的數值"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.js:31: min: $.validator.format("請輸入不小於 {0} 的數值") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:11: * Locale: JA (Japanese; 日本語) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:14: required: "このフィールドは必須です。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:15: remote: "このフィールドを修正してください。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:16: email: "有効なEメールアドレスを入力してください。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:17: url: "有効なURLを入力してください。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:18: date: "有効な日付を入力してください。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:19: dateISO: "有効な日付(ISO)を入力してください。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:20: number: "有効な数字を入力してください。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:21: digits: "数字のみを入力してください。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:22: creditcard: "有効なクレジットカード番号を入力してください。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:23: equalTo: "同じ値をもう一度入力してください。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:24: extension: "有効な拡張子を含む値を入力してください。", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:25: maxlength: $.validator.format("{0} 文字以内で入力してください。"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:26: minlength: $.validator.format("{0} 文字以上で入力してください。"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:27: rangelength: $.validator.format("{0} 文字から {1} 文字までの値を入力してください。"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:28: range: $.validator.format("{0} から {1} までの値を入力してください。"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:29: max: $.validator.format("{0} 以下の値を入力してください。"), ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_ja.js:30: min: $.validator.format("{0} 以上の値を入力してください。") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery-validation/localization/messages_zh_TW.min.js:4:!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):a(jQuery)}(function(a){a.extend(a.validator.messages,{required:"必須填寫",remote:"請修正此欄位",email:"請輸入有效的電子郵件",url:"請輸入有效的網址",date:"請輸入有效的日期",dateISO:"請輸入有效的日期 (YYYY-MM-DD)",number:"請輸入正確的數值",digits:"只可輸入數字",creditcard:"請輸入有效的信用卡號碼",equalTo:"請重複輸入一次",extension:"請輸入有效的後綴",maxlength:a.validator.format("最多 {0} 個字"),minlength:a.validator.format("最少 {0} 個字"),rangelength:a.validator.format("請輸入長度為 {0} 至 {1} 之間的字串"),range:a.validator.format("請輸入 {0} 至 {1} 之間的數值"),max:a.validator.format("請輸入不大於 {0} 的數值"),min:a.validator.format("請輸入不小於 {0} 的數值")})}); ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2: Copyright (c) 2013-2015 司徒正美 and other contributors ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:34: * 全局变量及方法 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:39:var head = DOC.getElementsByTagName("head")[0] //HEAD元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:40:var ifGroup = head.insertBefore(document.createElement("avalon"), head.firstChild) //避免IE6 base标签BUG ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:44:var rnative = /\[native code\]/ //判定是否原生函数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:58:var rword = /[^, ]+/g //切割字符串为一个个小块,以空格或豆号分开它们,结合replace实现字符串的forEach ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:67:var Registry = {} //将函数曝光到此对象上,方便访问器收集依赖 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:94://生成UUID http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:109:avalon = function (el) { //创建jQuery式的无new 实例化结构 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:119:/*视浏览器情况采用最快的异步回调*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:166: * avalon的静态方法定义区 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:173:avalon.type = function (obj) { //取得目标的类型 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:177: // 早期的webkit内核浏览器实现了已废弃的ecma262v4标准,可以将正则字面量当作函数使用,因此typeof在判定正则时会返回function ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:197: // 利用IE678 window == document为true,document == window竟然为false的神奇特性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:198: // 标准浏览器及IE9,IE10等使用 正则检测 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:212:var enumerateBUG = enu !== "0" //IE6下为true, 其他为false ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:213:/*判定是否是一个朴素的javascript对象(Object),不是DOM对象,不是BOM对象,不是自定义类的实例*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:218: try { //IE内置对象没有constructor ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:222: } catch (e) { //IE8 9会在这里抛错 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:236: // 简单的 typeof obj === "object"检测,会致使用isPlainObject(window)在opera下通不过 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:240://与jQuery.extend方法,可用于浅拷贝,深拷贝 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:248: // 如果第一个参数为布尔,判定是否深拷贝 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:255: //确保接受方为一个复杂的数据类型 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:260: //如果只有一个参数,那么新成员添加于mix所在的对象上 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:267: //只处理非空参数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:272: copy = options[name] //当options为VBS对象时报错 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:277: // 防止环引用 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:301:function _number(a, len) { //用于模拟slice, splice的效果 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:328: /*如果不用Error对象封装一下,str在控制台下可能会乱码*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:332: /*将一个以空格或逗号隔开的字符串或数组,转换成一个键值都为1的对象*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:344: range: function (start, end, step) { // 用于生成整数数组 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:360: /*绑定事件*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:380: /*卸载事件*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:397: /*读写删除元素节点的样式*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:404: if (value === void 0 || typeof value === "boolean") { //获取样式 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:411: } else if (value === "") { //请除样式 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:413: } else { //设置样式 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:424: /*遍历数组与对象,回调的第一个参数为索引或键名,第二个或元素或键值*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:426: if (obj) { //排除null, undefined ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:442: //收集元素的data-{{prefix}}-*属性,并转换为对象 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:456: /*只有当前数组不存在此元素时只添加它*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:462: /*移除数组中指定位置的元素,返回布尔表示成功与否*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:466: /*移除数组中第一个匹配传参的那个元素,返回布尔表示成功与否*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:479:/*判定是否类数组,如节点集合,纯数组,arguments与拥有非负整数的length属性的纯JS对象*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:484: if (n === (n >>> 0)) { //检测length属性是否为非负整数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:491: if ({}.propertyIsEnumerable.call(obj, "length") === false) { //如果是原生对象 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:495: } catch (e) { //IE的NodeList直接抛错 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:577: * javascript 底层补丁 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:579:if (!"司徒正美".trim) { ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:661: //定位操作,返回数组中第一个等于给定参数的元素的索引值。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:672: //定位操作,同上,不过是从后遍历。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:683: //迭代操作,将数组的元素挨个儿传入一个函数中执行。Prototype.js的对应名字为each。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:685: //迭代类 在数组中的每个项上运行一个函数,如果此函数的值为真,则此元素作为新数组的元素收集起来,并返回新数组 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:687: //收集操作,将数组的元素挨个儿传入一个函数中执行,然后把它们的返回值组成一个新数组返回。Prototype.js的对应名字为collect。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:689: //只要数组中有一个元素满足条件(放进给定函数返回true),那么它就返回true。Prototype.js的对应名字为any。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:691: //只有数组中的元素都满足条件(放进给定函数返回true),它才返回true。Prototype.js的对应名字为all。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:696: * DOM 底层补丁 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:700: try { //IE6-8,游离于DOM树外的文本节点,访问parentNode有时会抛错 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:710://IE6-11的文档对象没有contains ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:722: //safari5+是把contains方法放在Element.prototype上而不是Node.prototype ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:724: Node.prototype.contains = function (arg) {//IE6-8没有Node对象 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:740: svg.setAttribute(attr.name, attr.value) //复制属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:742: // 递归处理子节点 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:750: "outerHTML": {//IE9-11,firefox不支持SVG元素的innerHTML,outerHTML属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:758: // 操作的svg,直接插入 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:761: // svg节点的子节点类似 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:790:if (!root.outerHTML && window.HTMLElement) { //firefox 到11时才有outerHTML ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:815: ret.preventDefault = function () { //阻止默认行为 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:818: ret.stopPropagation = function () { //阻止事件在DOM树中的传播 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:825://针对firefox, chrome修正mouseenter, mouseleave ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:846://针对IE9+, w3c修正animationend ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:857://针对IE6-8修正input ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:872: /* IE6-11 chrome mousewheel wheelDetla 下 -120 上 120 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:873: firefox DOMMouseScroll detail 下3 上-3 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:874: firefox wheel detlaY 下3 上-3 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:875: IE9-11 wheel deltaY 下40 上-40 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:876: chrome wheel deltaY 下100 上-100 */ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:899: * 配置系统 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:921: //将字符串安全格式化为正则表达式的源码 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:939: throw new SyntaxError("此定界符不合法") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:973: * 事件总线 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:984: } else { //重新开始监听此VM的第一重简单属性的变动 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:991: if (n === 0) { //让此VM的所有$watch回调无效化 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1037: //循环两个vmodel中的节点,查找匹配(向上匹配或者向下匹配)的节点并设置标识 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1041: var ok = special === "down" ? element.contains(node) : //向下捕获 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1042: node.contains(element) //向上冒泡 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1044: node._avalon = v //符合条件的加一个标识 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1052: var nodes = DOC.getElementsByTagName("*") //实现节点排序 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1087://avalon最核心的方法的两个方法之一(另一个是avalon.scan),返回一个ViewModel(VM) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1088:var VMODELS = avalon.vmodels = {} //所有vmodel都储存在这里 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1092: log("warning: vm必须指定$id") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1095: log("warning: " + $id + " 已经存在于avalon.vmodels中") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1103: factory(scope) //得到所有定义 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1105: model = modelFactory(scope) //偷天换日,将scope换为model ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1114://一些不需要被监听的属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1118://如果浏览器不支持ecma262v5的Object.defineProperties或者存在BUG,比如IE8 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1119://标准浏览器使用__defineGetter__, __defineSetter__实现 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1137: //0 null undefined || Node || VModel(fix IE6-8 createWithProxy $val: val引发的BUG) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1142: $skipArray.$special = $special || {} //强制要监听的属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1143: var $vmodel = {} //要返回的对象, 它在IE6-8下可能被偷龙转凤 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1144: $model = $model || {} //vmodels.$model属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1145: var $events = {} //vmodel.$events属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1146: var accessors = {} //监控属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1157: //总共产生三种accessor ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1160: //总共产生三种accessor ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1174: $vmodel = defineProperties($vmodel, descriptorFactory(accessors), source) //生成一个空的ViewModel ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1181: //添加$id, $model, $events, $watch, $unwatch, $fire ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1188: if (!W3C) { //在IE6-8下,VB对象的方法里的this并不指向自身,需要用bind处理一下 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1211: callback: function (vm, dependency) {//dependency为一个accessor ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1238://创建一个简单访问器 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1258://创建一个计算访问器 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1260: function accessor(value) {//计算属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1272: $events[name] = [] //清空回调,防止内部冒泡而触发多次$fire ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1278: accessor.notify(this, value, oldValue) //触发$watch回调 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1284: //将依赖于自己的高层访问器或视图刷新函数(以绑定对象形式)放到自己的订阅数组中 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1285: //将自己注入到低层访问器的订阅数组中 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1289: accessor.notify(this, value, oldValue) //触发$watch回调 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1300://创建一个复杂访问器 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1367: var array = vmodel.$events[name] //刷新值 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1369: fireDependencies(array) //同步视图 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1370: EventBus.$fire.call(vmodel, name, value, oldValue) //触发$watch回调 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1376: //同时更新_value与model ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1381://比较两个值是否相等 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1421://===================修复浏览器对Object.defineProperties的支持================= ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1450: "End Function" //转换一段文本为VB代码 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1467: "\t\tSet [__const__] = Me", //链式调用 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1469: //添加普通属性,因为VBScript对象不能像JS那样随意增删属性,必须在这里预先定义好 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1481: //添加访问器属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1484: //由于不知对方会传入什么,因此set, let都用上 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1492: "\tOn Error Resume Next", //必须优先使用set语句,否则它会误将数组当字符串返回 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1509: "Function " + className + "Factory(a, b)", //创建实例并传入两个关键的参数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1517: var ret = window[className + "Factory"](accessors, VBMediator) //得到其产品 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1518: return ret //得到其产品 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1524: * 监控数组(与ms-each, ms-repeat配合使用) * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1530: array.$model = model //数据模型 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1589: size: function () { //取得数组长度,这个函数可以同步视图,length不能 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1615: return m + n //IE67的unshift不会返回长度 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1621: return el //返回被移除的元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1629: return el //返回被移除的元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1635: if (removed.length) { //如果用户删掉了元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1639: if (m > 2) { //如果用户添加了元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1647: if (change) { //返回被移除的元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1653: contains: function (el) { //判定是否包含 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1656: remove: function (el) { //移除第一个等于给定值的元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1659: removeAt: function (index) { //移除指定索引上的元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1667: this.$model.length = this.length = this._.length = 0 //清空数组 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1671: removeAll: function (all) { //移除N个元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1690: if (!this.contains(el)) { //只有不存在才push ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1719://相当于原来bindingExecutors.repeat 的index分支 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1745: var newArray = this.$model//这是要排序的新数组 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1746: var oldArray = newArray.concat() //保持原来状态的旧数组 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1750: ap[method].apply(newArray, arguments) //排序 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1758: indexes.push(index)//得到新数组的每个元素在旧数组对应的位置 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1759: oldArray[index] = mask //屏蔽已经找过的元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1775: * 依赖调度系统 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1777://检测两个对象间的依赖关系 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1783: //accessorObject为一个拥有callback的对象 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1792: //被dependencyDetection.begin调用 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1798://将绑定对象注入到其依赖项的订阅数组中 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1802: if (valueFn) { //如果是求值函数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1832://将依赖项(比它高层的访问器或构建视图刷新函数的绑定对象)注入到订阅者数组 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1841://通知依赖于这个访问器的订阅者更新自身 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1854: fn.handler.apply(fn, args) //处理监控数组的方法 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1855: }else if("$repeat" in fn || !valueFn ){//如果没有eval,先eval ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1857: } else if (fn.type !== "on") { //事件绑定只能由用户触发,不能由程序触发 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1867: * 定时GC回收机制 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1874:function getUid(obj, makeID) { //IE9+,标准浏览器 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1884://添加到回收列队中 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1911: //对页面上所有绑定对象进行分门别类, 只检测个数发生变化的类型 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1933: if (iffishTypes[data.type] && shouldDispose(data.element)) { //如果它没有在DOM树 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1959: try {//IE下,如果文本节点脱离DOM树,访问parentNode会报错 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1971: * HTML处理(parseHTML, innerHTML, clearHTML) * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1984: //IE6-8在用innerHTML生成节点时,不能直接创建no-scope元素与HTML5的新标签 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1985: _default: W3C ? [0, "", ""] : [1, "X
", "
"] //div可以不用闭合 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1991: tagHooks[tag] = tagHooks.g //处理SVG ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1993:var rtagName = /<([\w:]+)/ //取得其tagName ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:1997:var rnest = /<(?:tb|td|tf|th|tr|col|opt|leg|cap|area)/ //需要处理套嵌关系的标签 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2011: //取得其标签名 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2016: html = html.replace(rcreate, "
$1") //在link style script等标签之前添加一个补丁 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2020: if (els.length) { //使用innerHTML生成的script节点不会发出请求与执行text属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2023: //以偷龙转凤方式恢复执行脚本功能 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2024: neo = script.cloneNode(false) //FF不能省略参数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2027: neo[attr.name] = attr.value //复制其属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2032: el.parentNode.replaceChild(neo, el) //替换节点 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2039: //IE6-7处理 --> , ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2062: //移除我们为了符合套嵌关系而添加的标签 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2065: while (firstChild = wrapper.firstChild) { // 将wrapper上的节点转移到文档碎片上! ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2103: * avalon的原型方法定义区 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2107: //转换为连字符线风格 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2112: //提前判断,提高getStyle等的效率 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2116: //转换为驼峰风格 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2144: //SVG元素的className是一个对象 SVGAnimatedString { baseVal="", animVal=""},只能通过set/getAttribute操作 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2149: } //toggle存在版本差异,因此不使用它 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2251: offsetParent = this.offsetParent() //得到真正的offsetParent ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2252: offset = this.offset() // 得到正确的offsetParent ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2276: if (this[0]) { //此方法不会链 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2334://生成avalon.fn.scrollLeft, avalon.fn.scrollTop方法 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2357://=============================css相关======================= ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2379: try { //node.style.width = NaN;node.style.width = "xxxxxxx";node.style.width = undefine 在旧式IE下会抛异常 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2386: throw new Error("getComputedStyle要求传入一个节点 " + node) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2392: ret = node.style[name] //其他浏览器需要我们手动取内联样式 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2413: //取得精确值,不过它有可能是带em,pc,mm,pt,%等单位 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2417: //①,保存原有的style.left, runtimeStyle.left, ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2421: //②由于③处的style.left = xxx会影响到currentStyle.left, ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2422: //因此把它currentStyle.left放到runtimeStyle.left, ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2423: //runtimeStyle.left拥有最高优先级,不会style.left影响 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2425: //③将精确值赋给到style.left,然后通过IE的另一个私有属性 style.pixelLeft ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2426: //得到单位为px的结果;fontSize的分支见http://bugs.jquery.com/ticket/760 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2429: //④还原 style.left,runtimeStyle.left ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2435: //border width 默认值为medium,即使其为0" ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2447: //不能使用以下方式设置透明度 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2457: //这是最快的获取IE透明值的方式,不需要动用正则了! ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2460: return (op / 100) + "" //确保返回的是字符串 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2482: if (node.offsetWidth <= 0) { //opera.offsetWidth可能小于0 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2536: avalon.fn[method] = function(value) { //会忽视其display ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2539: if (node.setTimeout) { //取得窗口尺寸,IE9后可以用node.innerWidth /innerHeight代替 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2542: if (node.nodeType === 9) { //取得页面尺寸 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2545: //IE 标准模式 : html.scrollHeight> body.scrollHeight ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2546: //IE 怪异模式 : html.scrollHeight 最大等于可视窗口多一点? ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2561: avalon.fn.offset = function() { //取得距离页面左右角的坐标 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2577: //http://hkom.blog1.fc2.com/?mode=m&no=750 body的偏移量是不包含margin的 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2578: //我们可以通过getBoundingClientRect来获得元素相对于client的rect. ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2588: // 把滚动距离加到left,top中去。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2589: // IE一些版本中会自动为HTML元素加上2px的border,我们需要去掉它 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2597: //==================================val相关============================ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2606: //在IE11及W3C,如果没有指定value,那么node.value默认为node.text(存在trim作),但IE9-10则是取innerHTML(没trim操作) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2607: //specified并不可靠,因此通过分析outerHTML判定用户有没有显示定义value ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2622: //旧式IE在reset后不会改变selected,需要改用i === index判定 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2623: //我们过滤所有disabled的option元素,但在safari5下,如果设置select为disable,那么其所有孩子都disable ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2624: //因此当一个元素为disable,需要检测其是否显式设置了disable及其父节点的disable情况 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2630: //收集所有selected值组成数组返回 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2637: values = [].concat(values) //强制转换为数组 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2651: * 编译系统 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2673: "throw,true,try,typeof,var,void,while,with", /* 关键字*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2677: "throws,transient,volatile", /*保留字*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2700:/*添加赋值语句*/ ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2730://缓存求值函数,以便多次利用 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2732://取得求值函数及其传参 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2742: .replace(rthimRightParentheses, "")//处理最后的小括号 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2743: .replace(rthimOtherParentheses, function () {//处理其他小括号 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2746: .replace(rquoteFilterName, function (a, b) { //处理|及它后面的过滤器的名字 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2769: //args 是一个对象数组, names 是将要生成的求值函数的参数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2791: if (c === "." || c === "[" || method) {//比如v为aa,我们只匹配aa.bb,aa[cc],不匹配aaa.xxx ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2815: var fn = evaluatorPool.get(exprId) //直接从缓存,免得重复生成 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2824: if (/\S/.test(filters)) { //文本绑定,双工绑定才有过滤器 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2826: throw Error("ms-" + data.type + "不支持过滤器") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2830: } else if (dataType === "duplex") { //双工绑定 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2844: } else if (dataType === "on") { //事件绑定 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2851: code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2856: } else { //其他绑定 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2857: code = "\nreturn " + code + ";" //IE全家 Function("return ")出错,需要Function("return ;") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2865: vars = assigns = names = null //释放内存 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2870://parseExpr的智能引用代理 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2881: //方便调试 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2882: //这里非常重要,我们通过判定视图刷新函数的element是否在DOM树决定 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2883: //将它移出订阅者列表 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2889: * 扫描系统 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2935: if (data.evaluator && data.element && data.element.nodeType === 1) { //移除数据绑定,防止被二次解析 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2936: //chrome使用removeAttributeNode移除不存在的特性节点时会报错 https://github.com/RubyLouvre/avalon/issues/99 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2990: //如果是以指定前缀命名的 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:2999: if (type === "enabled") {//吃掉ms-enabled绑定,用ms-disabled代替 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3000: log("warning!ms-enabled或ms-attr-enabled已经被废弃") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3021: //chrome与firefox下Number(param)得到的值不一样 #855 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3048: log("warning!请改用" + arr[1] + "代替" + arr[0] + "!") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3053: //在IE下对VML读取type属性,会让此元素所有属性都变成 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3056: log("warning!一个控件不能同时定义ms-attr-checked与" + hasDuplex) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3059: log("warning!一个控件不能同时定义ms-attr-value与" + hasDuplex) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3075: scanNodeList(elem, vmodels) //扫描子孙元素 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3080://IE67下,在循环绑定中,一个节点如果是通过cloneNode得到,自定义属性的specified为false,无法进入里面的分支, ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3081://但如果我们去掉scanAttr中的attr.specified检测,一个元素会有80+个特性节点(因为它不区分固有属性与自定义属性),很容易卡死页面 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3088: //IE6-8解析HTML5新标签,会将它分解两个元素节点与一个文本节点 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3096: //依次输出
,
./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3099: //处理IE6-8解析HTML5新标签的情况,及
等半闭合标签outerHTML为空的情况 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3138: scanTag(node, vmodels) //扫描元素节点 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3146: scanText(node, vmodels, i) //扫描文本节点 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3155: //扫描顺序 ms-skip(0) --> ms-important(1) --> ms-controller(2) --> ms-if(10) --> ms-repeat(100) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3156: //--> ms-if-loop(110) --> ms-attr(970) ...--> ms-each(1400)-->ms-with(1500)--〉ms-duplex(2000)垫后 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3158: //#360 在旧式IE中 Object标签在引入Flash等资源时,可能出现没有getAttributeNode,innerHTML的情形 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3171: //ms-important不包含父VM,ms-controller相反 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3174: elem.removeAttribute(name) //removeAttributeNode不会刷新[ms-controller]样式规则 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3178: scanAttr(elem, vmodels) //扫描特性节点 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3190: var index = scapegoat.replace(r11a, "\u1122\u3344").indexOf("|") //干掉所有短路或 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3216: if (value) { // {{ 左边的文本 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3229: if (value) { //处理{{ }}插值表达式 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3235: if (value) { //}} 右边的文本 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3250: var node = DOC.createTextNode(token.value) //将文本转换为文本节点,并替换原来的文本节点 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3263: bindings.push(token) //收集带有插值表达式的文本 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3283:var propMap = { //属性名映射 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3338: data.handlerName = "attr" //handleName用于处理多种绑定共用同一种bindingExecutor的情况 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3349: // ms-attr-class="xxx" vm.xxx="aaa bbb ccc"将元素的className设置为aaa bbb ccc ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3350: // ms-attr-class="xxx" vm.xxx=false 清空元素的所有类名 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3351: // ms-attr-name="yyy" vm.yyy="ooo" 为元素设置name属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3354: if (!W3C && propMap[attrName]) { //旧式IE下需要进行名字映射 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3359: elem[bool] = !! val //布尔属性必须使用el.xxx = true|false方式设值 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3360: if (!val) { //如果为false, IE全系列下相当于setAttribute(xxx,''),会影响到样式,需要进一步处理 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3367: //SVG只能使用setAttribute(xxx, yyy), VML只能使用elem.xxx = yyy ,HTML的固有属性必须elem.xxx = yyy ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3421: } else if (Array.isArray(templatePool[val])) { //#805 防止在循环绑定中发出许多相同的请求 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3446: //IE系列与够新的标准浏览器支持通过ID取得元素(firefox14+) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3450: if (el.tagName === "NOSCRIPT" && !(el.innerHTML || el.fixIE78)) { //IE7-8 innerText,innerHTML都无法取得其内容,IE6能取得其innerHTML ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3451: xhr = getXHR() //IE9-11与chrome的innerHTML会得到转义的内容,它们的innerText可以 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3452: xhr.open("GET", location, false) //谢谢Nodejs 乱炖群 深圳-纯属虚构 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3460: if (tag) { //IE6-8中noscript标签的innerHTML,innerText是只读的 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3473: val = val.replace(/&/g, "&") //处理IE67自动转义的问题 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3477: var parent = elem.parentNode //#525 chrome1-37下embed标签动态设置src不能发生请求 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3498://这几个指令都可以使用插值表达式,如ms-src="aaa/{{b}}/{{c}}.html" ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3502://根据VM的属性值或表达式的值切换类名,ms-class="xxx yyy zzz:flag" ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3510: data.param = "" //去掉数字 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3513: //return Math.pow(10, a.length - 1) //将插值表达式插入10的N-1次方来占位 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3515: var colonIndex = noExpr.indexOf(":") //取得第一个冒号的位置 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3516: if (colonIndex === -1) { // 比如 ms-class="aaa bbb ccc" 的情况 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3518: } else { // 比如 ms-class-1="ui-state-active:checked" 的情况 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3521: parseExpr(rightExpr, vmodels, data) //决定是添加还是删除 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3523: log("debug: ms-class '" + (rightExpr || "").trim() + "' 不存在于VM中") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3530: var hasExpr = rexpr.test(className) //比如ms-class="width{{w}}"的情况 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3544: if (method === "class" && data.oldStyle) { //如果是旧风格 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3547: //如果存在冒号就有求值函数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3560: if (!data.hasBindEvent) { //确保只绑定一次 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3561: var activate = "mouseenter" //在移出移入时切换类名 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3563: if (method === "active") { //在聚焦失焦中切换类名 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3592://ms-controller绑定已经在scanTag 方法中实现 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3593://ms-css绑定已由ms-attr绑定实现 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3596:// bindingHandlers.data 定义在if.js ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3605://双工绑定 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3624: log("ms-duplex-radio已经更名为ms-duplex-checked") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3630: log("ms-duplex-bool已经更名为ms-duplex-boolean") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3633: log("ms-duplex-text已经更名为ms-duplex-string") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3667://不存在 bindingExecutors.duplex ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3679: get: function(val) { //同步到VM ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3754: Object.getOwnPropertyNames(inputProto) //故意引发IE6-8等浏览器报错 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3765: //在chrome 43中 ms-duplex终于不需要使用定时器实现双向绑定了 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3780://处理radio, checkbox, text, textarea, password ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3798: //当value变化时改变model的值 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3800: if (composing) //处理中文输入法在minlengh下引发的BUG ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3802: var val = element.oldValue = element.value //防止递归调用形成死循环 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3814: //当model变化时,它就会改变value的值 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3836: //IE8 checkbox, radio是使用defaultChecked控制选中状态, ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3837: //并且要先设置defaultChecked后设置checked ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3838: //并且必须设置延迟 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3853: log("ms-duplex应用于checkbox上要对应一个数组") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3863: var array = [].concat(evaluator()) //强制转换为数组 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3871: log("data-event指令已经废弃,请改用data-duplex-event") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3884: //非IE浏览器才用这个 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3888: } else { //onpropertychange事件无法区分是程序触发还是用户触发 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3889: // IE下通过selectionchange事件监听IE9+点击input右边的X的清空行为,及粘贴,剪切,删除行为 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3891: bound("input", updateVModel) //IE9使用propertychange无法监听中文输入改动 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3893: bound("propertychange", function(e) { //IE6-8下第一次修改时不会触发,需要使用keydown或selectionchange修正 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3941: var val = $elem.val() //字符串或字符串数组 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3960: log("ms-duplex在不能对应一个数组") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3967: //必须变成字符串后才能比较 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:3980:// bindingHandlers.html 定义在if.js ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4001: } else if (val.nodeType === 11) { //将val转换为文档碎片 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4012: //插入占位符, 如果是过滤器,需要有节制地移除指定的数量,如果是html指令,直接清空 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4041: if (val) { //插回DOM树 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4045: elem = data.element = data.template //这时可能为null ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4052: } else { //移出DOM树,并用注释节点占据原位置 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4057: data.template = elem //元素节点 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4067://ms-important绑定已经在scanTag 方法中实现 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4068://ms-include绑定已由ms-attr绑定实现 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4080: if (matched === "" || matched === "$event") { // aaa() aaa($event)当成aaa处理 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4120: avalon.log("warning:" + data.value + "只能是对象或数组") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4214: case "add": //在pos位置后添加el数组(pos为插入位置,el为要插入的个数) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4232: avalon.profile("插入操作花费了 " + (new Date - now)) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4234: case "del": //将pos后的el个元素删掉(pos, el都是数字) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4273: case "index": //将proxies中的第pos个起的所有元素重新索引 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4281: case "set": //将proxies中的第pos个元素的VM设置为el(pos为数字,el任意) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4288: var object = data.$repeat //原来第2参数, 被循环对象 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4289: var oldProxy = object.$proxy //代理对象组成的hash ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4317: //将现有的节点全部移出DOM树 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4328: for (var key in object) { //当前对象的所有键名 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4335: if (!pool.hasOwnProperty(key)) {//添加缺失的代理VM ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4343: if (keys.indexOf(key) === -1) {//删除没用的代理VM ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4344: proxyRecycler(pool[key], withProxyPool) //去掉之前的代理VM ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4349: var renderKeys = keys //需要渲染到DOM树去的键名 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4351: if (data.sortedCallback) { //如果有回调,则让它们排序 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4382: avalon.profile("插入操作花费了 " + (new Date - now)) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4385: if (!data.$repeat || data.$repeat.hasOwnProperty("$lock")) //IE6-8 VBScript对象会报错, 有时候data.$repeat不存在 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4428://移除掉start与end之间的节点(保留end) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4442:// 为ms-each,ms-with, ms-repeat会创建一个代理VM, ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4443:// 通过它们保持一个下上文,让用户能调用$index,$first,$last,$remove,$key,$val,$outer等属性与方法 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4444:// 所有代理VM的产生,消费,收集,存放通过xxxProxyFactory,xxxProxyAgent, recycleProxies,xxxProxyPool实现 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4511: e.$index = e[name] //#817 通过$index为el收集依赖 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4582: * 各种指令 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4584://ms-skip绑定已经在scanTag 方法中实现 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4585:// bindingHandlers.text 定义在if.js ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4587: val = val == null ? "" : val //不在页面上显示undefined null ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4588: if (elem.nodeType === 3) { //绑定在文本节点上 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4589: try { //IE对游离于DOM树外的节点赋值会报错 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4592: } else { //绑定在特性节点上 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4601: //用于取得此类标签的默认display值 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4637: if (!id || id === "$") { //没有定义或为$时,取组件名+随机数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4640: var optName = args[2] || widget //没有定义,取组件名 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4654: log("warning!不再支持" + widget + "Id") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4658: //抽取data-tooltip-text、data-tooltip-attr属性,组成一个配置对象 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4666: var vmodel = constructor(elem, data, vmodels) || {} //防止组件不返回VM ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4695: } else if (vmodels.length) { //如果该组件还没有加载,那么保存当前的vmodels ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4700://不存在 bindingExecutors.widget ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4702: * 自带过滤器 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4717: //number 必需,要格式化的数字 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4718: //decimals 可选,规定多少个小数位。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4719: //point 可选,规定用作小数点的字符串(默认为 . )。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4720: //thousands 可选,规定用作千位分隔符的字符串(默认为 , ),如果设置了该参数,那么所有其他参数都是必需的。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4757: //length,新字符串长度,truncation,新字符串的结尾的字段,返回新字符串 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4783: if (match) { //处理a标签的href属性,img标签的src属性,form标签的action属性 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4792: return a.replace(ron, " ").replace(/\s+/g, " ") //移除onXXX事件 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4796: //将字符串经过 str 转义得到适合在页面中显示的内容, 例如替换 < 为 < ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4893: //取得上午下午 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4940: //取得年月日 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4943: dateArray[0] = toInt(array[0]) //年 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4944: dateArray[1] = toInt(array[1]) - 1 //月 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4945: dateArray[2] = toInt(array[2]) //日 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4951: dateArray[3] = toInt(a) //小时 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4952: dateArray[4] = toInt(b) //分钟 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4953: dateArray[5] = toInt(c) //秒 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:4954: if (d) { //毫秒 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5002: 0: "上午", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5003: 1: "下午" ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5006: 0: "星期日", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5007: 1: "星期一", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5008: 2: "星期二", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5009: 3: "星期三", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5010: 4: "星期四", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5011: 5: "星期五", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5012: 6: "星期六" ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5015: 0: "1月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5016: 1: "2月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5017: 2: "3月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5018: 3: "4月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5019: 4: "5月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5020: 5: "6月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5021: 6: "7月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5022: 7: "8月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5023: 8: "9月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5024: 9: "10月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5025: 10: "11月", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5026: 11: "12月" ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5029: "0": "周日", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5030: "1": "周一", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5031: "2": "周二", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5032: "3": "周三", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5033: "4": "周四", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5034: "5": "周五", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5035: "6": "周六" ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5037: fullDate: "y年M月d日EEEE", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5038: longDate: "y年M月d日", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5050: * AMD加载器 * ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5064://Object(modules[id]).state拥有如下值 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5065:// undefined 没有定义 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5066:// 1(send) 已经发出请求 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5067:// 2(loading) 已经被执行但还没有执行完成,在这个阶段define方法会被执行 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5068:// 3(loaded) 执行完毕,通过onload/onreadystatechange回调判定,在这个阶段checkDeps方法会执行 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5069:// 4(execute) 其依赖也执行完毕, 值放到exports对象上,在这个阶段fireFactory方法会执行 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5073: var loadings = [] //正在加载中的模块列表 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5074: var factorys = [] //放置define方法的factory函数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5077://1. 去掉资源前缀 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5084: log("debug: ready!已经被废弃,请使用domReady!") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5087://2. 去掉querystring, hash ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5093: //3. 去掉扩展名 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5118: //1. 如果该模块已经发出请求,直接返回 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5154://核心API之一 require ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5171: avalon.error("require方法的第一个参数应为数组 " + array) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5173: var deps = [] // 放置所有依赖项的完整路径 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5189: var url = fireRequest(req) //加载资源,并返回该资源的完整地址 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5193: uniq[url] = "司徒正美" //去重 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5209: //如果此模块是定义在另一个JS文件中, 那必须等该文件加载完毕, 才能放到检测列队中 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5215://核心API之二 require ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5216: innerRequire.define = function (name, deps, factory) { //模块名,依赖列表,模块本身 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5227: built: !isUserFirstRequire, //用r.js打包后,所有define会放到requirejs之前 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5241: avalon.error(url + "模块与之前的模块存在循环依赖,请不要直接用script标签引入" + url + "模块") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5244: delete factory.require //释放内存 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5247://根据标准,所有遵循W3C标准的浏览器,script标签会按标签的出现顺序执行。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5248://老的浏览器中,加载也是按顺序的:一个文件下载完成后,才开始下载下一个文件。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5249://较新的浏览器中(IE8+ 、FireFox3.5+ 、Chrome4+ 、Safari4+),为了减小请求时间以优化体验, ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5250://下载可以是并行的,但是执行顺序还是按照标签出现的顺序。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5251://但如果script标签是动态插入的, 就未必按照先请求先执行的原则了,目测只有firefox遵守 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5252://唯一比较一致的是,IE10+及其他标准浏览器,一旦开始解析脚本, 就会一直堵在那里,直接脚本解析完毕 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5253://亦即,先进入loading阶段的script标签(模块)必然会先进入loaded阶段 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5261: } else {//合并前后的safari,合并后的IE6-9走此分支 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5265://核心API之三 require.config(settings) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5267: //核心API之四 define.amd 标识其符合AMD规范 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5270: //==========================对用户配置项进行再加工========================== ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5346: //==============================内部方法================================= ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5348: //检测是否存在循环依赖 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5358: var id = trimQuery(node.src) //检测是否死链 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5363: node = null // 处理旧式IE下的循环引用问题 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5365: log("debug: 加载 " + id + " 失败" + onError + " " + (!modules[id].state)) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5372: //检测此JS模块的依赖是否都已安装完毕,是则安装自身 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5383: //如果deps是空对象或者其依赖的模块的状态都是2 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5385: loadings.splice(i, 1) //必须先移除再安装,防止在IE下DOM树建完后手动刷新页面,会多次执行它 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5387: checkDeps() //如果成功,则再执行一次,以防有些模块就差本模块没有安装好 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5394: //通过script节点加载目标模块 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5396: node.className = subscribers //让getCurrentScript只处理类名为subscribers的script节点 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5406: log("debug: 已成功加载 " + url) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5427: head.insertBefore(node, head.firstChild) //chrome下第二个参数不能为null ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5428: node.src = url //插入到head的第一个节点前,防止IE6下head标签没闭合前使用appendChild抛错 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5429: log("debug: 正准备加载 " + url) //更重要的是IE6下可以收窄getCurrentScript的寻找范围 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5433: //三大常用资源插件 js!, css!, text!, ready! ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5442: if (shim) { //shim机制 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5461: log("debug: 已成功加载 " + url) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5473: avalon.error(url + " 对应资源不存在或没有开启 CORS") ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5475: log("debug: 已成功加载 " + url) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5483: if ("withCredentials" in xhr) {//这是处理跨域 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5486: xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest")//告诉后端这是AJAX请求 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5488: log("debug: 正准备加载 " + url) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5512: a.b.c() //强制报错,以便捕获e.stack ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5513: } catch (e) { //safari5的sourceURL,firefox的fileName,它们的效果与e.stack不一样 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5516: //opera 9没有e.stack,但有e.Backtrace,但不能直接取得,需要对e对象转字符串进行抽取 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5521: /**e.stack最后一行在所有支持的浏览器大致如下: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5530: * //firefox4+ 可以用document.currentScript ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5532: stack = stack.split(/[@ ]/g).pop() //取得最后一行,最后一个空格或@之后的部分 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5533: stack = stack[0] === "(" ? stack.slice(1, -1) : stack.replace(/\s/, "") //去掉换行符 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5534: return trimQuery(stack.replace(/(:\d+)?:\d+$/i, "")) //去掉行号与或许存在的出错字符起始位置 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5536: var nodes = head.getElementsByTagName("script") //只在head标签中寻找 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5560: log("执行[" + id + "]模块的factory抛错: ", e) ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5573: id = id.slice(this.res.length + 1) //处理define("css!style",[], function(){})的情况 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5576: //1. 是否命中paths配置项 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5584: //2. 是否命中packages配置项 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5590: //3. 是否命中map配置项 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5603: //4. 转换为绝对路径 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5608: //5. 还原扩展名,query ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5611: //6. 处理urlArgs ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5620: //创建一个经过特殊算法排好序的数组 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5668: // 根据元素的name项进行数组字符数逆序的排序函数 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5686: if (b.slice(0, 2) === "./") { //相对于兄弟路径 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5689: if (b.slice(0, 2) === "..") { //相对于父路径 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5743: try { //IE下通过doScrollCheck检测DOM树是否建完 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/avalon.js:5752: setTimeout(fireReady) //如果在domReady之外加载 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/routeUtil.js:330: var reg_api_match =new RegExp("^(\/"+apiRootPath+"\/.*?)$","im"); // re为/^\d+bl$/gim ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/routeController.js:514: //判断host是否重复 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/routeController.js:578: //判断host是否重复 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:68: name:'MSB历史访问次数统计图' ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:73: data:['每分钟处理请求数'] ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:80: name: '采集点' ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:87: name: '请求数', ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:94: name:'每分钟处理请求数', ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:102: // 使用刚指定的配置项和数据显示图表。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:169: name:'MSB正在处理请求数图' ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:174: data:['已转发等待响应','已接收待转发','收到响应待返回'] ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:180: name: '采集点', ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:187: name: '请求数', ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:194: name:'已转发等待响应', ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:199: name:'已接收待转发', ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:204: name:'收到响应待返回', ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:212: // 使用刚指定的配置项和数据显示图表。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:293: name:'MSB当前连接数统计图' ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:304: name: '采集点', ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:315: name: '连接数', ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/statusUtil.js:348: // 使用刚指定的配置项和数据显示图表。 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/routeFunc.js:138: //标准api ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/routeFunc.js:161: //非标准api ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/routeFunc.js:202: //标准api ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/routeFunc.js:219: //非标准api ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/jquery.i18n/jquery.i18n.properties-1.0.9.js:75: // 将寻找资源文件的顺序倒置 ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/echarts/echarts.common.min.js:11:height:c.height},e),i,n);var f=t.position,p=s?e.x-c.x:0,g=l?e.y-c.y:0;t.attr("position","raw"===h?[p,g]:[f[0]+p,f[1]+g])}},u.mergeLayoutParam=function(t,e,i){function n(n){var r={},s=0,l={},u=0,c=i.ignoreSize?1:2;if(h(n,function(e){l[e]=t[e]}),h(n,function(t){o(e,t)&&(r[t]=l[t]=e[t]),a(r,t)&&s++,a(l,t)&&u++}),u!==c&&s){if(s>=c)return r;for(var d=0;d=0;r--)n=o.merge(n,t[r],!0);l.set(this,"__defaultOption",n)}return l.get(this,"__defaultOption")},getReferringComponents:function(t){return this.ecModel.queryComponents({mainType:t,index:this.get(t+"Index",!0),id:this.get(t+"Id",!0)})}});l.enableClassManagement(u,{registerWhenExtend:!0}),s.enableSubTypeDefaulter(u),s.enableTopologicalTravel(u,n),o.mixin(u,i(129)),t.exports=u},function(t,e,i){(function(e){function n(t){return d.isArray(t)||(t=[t]),t}function r(t,e){var i=t.dimensions,n=new v(d.map(i,t.getDimensionInfo,t),t.hostModel);m(n,t);for(var r=n._storage={},o=t._storage,a=0;a=0?r[s]=new l.constructor(o[s].length):r[s]=o[s]}return n}var o="undefined",a="undefined"==typeof window?e:window,s=typeof a.Float64Array===o?Array:a.Float64Array,l=typeof a.Int32Array===o?Array:a.Int32Array,h={"float":s,"int":l,ordinal:Array,number:Array,time:Array},u=i(11),c=i(43),d=i(1),f=i(6),p=d.isObject,g=["stackedOn","hasItemOption","_nameList","_idList","_rawData"],m=function(t,e){d.each(g.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods},v=function(t,e){t=t||["x","y"];for(var i={},n=[],r=0;r0&&(w+="__ec__"+u[b]),u[b]++),w&&(l[c]=w)}this._nameList=e,this._idList=l},y.count=function(){return this.indices.length},y.get=function(t,e,i){var n=this._storage,r=this.indices[e];if(null==r)return NaN;var o=n[t]&&n[t][r];if(i){var a=this._dimensionInfos[t];if(a&&a.stackable)for(var s=this.stackedOn;s;){var l=s.get(t,e);(o>=0&&l>0||o<=0&&l<0)&&(o+=l),s=s.stackedOn}}return o},y.getValues=function(t,e,i){var n=[];d.isArray(t)||(i=e,e=t,t=this.dimensions);for(var r=0,o=t.length;rl&&(l=o));return this._extent[t+!!e]=[s,l]}return[1/0,-(1/0)]},y.getSum=function(t,e){var i=this._storage[t],n=0;if(i)for(var r=0,o=this.count();rt))return o;r=o-1}}return-1},y.indexOfNearest=function(t,e,i,n){var r=this._storage,o=r[t];null==n&&(n=1/0);var a=-1;if(o)for(var s=Number.MAX_VALUE,l=0,h=this.count();l0)&&(s=c,a=l)}return a},y.getRawIndex=function(t){var e=this.indices[t];return null==e?-1:e},y.getRawDataItem=function(t){return this._rawData[this.getRawIndex(t)]},y.getName=function(t){return this._nameList[this.indices[t]]||""},y.getId=function(t){return this._idList[this.indices[t]]||this.getRawIndex(t)+""},y.each=function(t,e,i,r){"function"==typeof t&&(r=i,i=e,e=t,t=[]),t=d.map(n(t),this.getDimension,this);var o=[],a=t.length,s=this.indices;r=r||this;for(var l=0;lp-g&&(d=p-g,u.length=d);for(var m=0;m',g=this.name;return"\0-"===g&&(g=""),e?c+f(this.name)+" : "+l:(g&&f(g)+"
")+c+(h?f(h)+" : "+l:l)},isAnimationEnabled:function(){if(h.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){c(this,"data",d(this,"dataBeforeProcessed").cloneShallow())},getColorFromPalette:function(t,e){var i=this.ecModel,n=l.getColorFromPalette.call(this,t,e);return n||(n=i.getColorFromPalette(t,e)),n},getAxisTooltipDataIndex:null,getTooltipPosition:null});n.mixin(g,a.dataFormatMixin),n.mixin(g,l),t.exports=g},function(t,e,i){function n(t,e){var i=t+":"+e;if(l[i])return l[i];for(var n=(t+"").split("\n"),r=0,o=0,a=n.length;ou&&(h=0,l={}),h++,l[i]=r,r}function r(t,e,i,r){var o=((t||"")+"").split("\n").length,a=n(t,e),s=n("国",e),l=o*s,h=new d(0,0,a,l);switch(h.lineHeight=s,r){case"bottom":case"alphabetic":h.y-=s;break;case"middle":h.y-=s/2}switch(i){case"end":case"right":h.x-=h.width;break;case"center":h.x-=h.width/2}return h}function o(t,e,i,n){var r=e.x,o=e.y,a=e.height,s=e.width,l=i.height,h=a/2-l/2,u="left";switch(t){case"left":r-=n,o+=h,u="right";break;case"right":r+=n+s,o+=h,u="left";break;case"top":r+=s/2,o-=n+l,u="center";break;case"bottom":r+=s/2,o+=a+n,u="center";break;case"inside":r+=s/2,o+=h,u="center";break;case"insideLeft":r+=n,o+=h,u="left";break;case"insideRight":r+=s-n,o+=h,u="right";break;case"insideTop":r+=s/2,o+=n,u="center";break;case"insideBottom":r+=s/2,o+=a-l-n,u="center";break;case"insideTopLeft":r+=n,o+=n,u="left";break;case"insideTopRight":r+=s-n,o+=n,u="right";break;case"insideBottomLeft":r+=n,o+=a-l-n;break;case"insideBottomRight":r+=s-n,o+=a-l-n,u="right"}return{x:r,y:o,textAlign:u,textBaseline:"top"}}function a(t,e,i,r,o){if(!e)return"";o=o||{},r=f(r,"...");for(var a=f(o.maxIterations,2),l=f(o.minChar,0),h=n("国",i),u=n("a",i),c=f(o.placeholder,""),d=e=Math.max(0,e-1),p=0;p=u;p++)d-=u;var g=n(r);g>d&&(r="",g=0),d=e-g;for(var m=(t+"").split("\n"),p=0,v=m.length;p=a){y+=r;break}var b=0===_?s(y,d,u,h):x>0?Math.floor(y.length*d/x):0;y=y.substr(0,b),x=n(y,i)}""===y&&(y=c),m[p]=y}}return m.join("\n")}function s(t,e,i,n){for(var r=0,o=0,a=t.length;o-w&&tw||t<-w}function o(t,e,i,n,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*n+3*o*i)}function a(t,e,i,n,r){var o=1-r;return 3*(((e-t)*o+2*(i-e)*r)*o+(n-i)*r*r)}function s(t,e,i,r,o,a){var s=r+3*(e-i)-t,l=3*(i-2*e+t),h=3*(e-t),u=t-o,c=l*l-3*s*h,d=l*h-9*s*u,f=h*h-3*l*u,p=0;if(n(c)&&n(d))if(n(l))a[0]=0;else{var g=-h/l;g>=0&&g<=1&&(a[p++]=g)}else{var m=d*d-4*c*f;if(n(m)){var v=d/c,g=-l/s+v,y=-v/2;g>=0&&g<=1&&(a[p++]=g),y>=0&&y<=1&&(a[p++]=y)}else if(m>0){var x=b(m),w=c*l+1.5*s*(-d+x),M=c*l+1.5*s*(-d-x);w=w<0?-_(-w,T):_(w,T),M=M<0?-_(-M,T):_(M,T);var g=(-l-(w+M))/(3*s);g>=0&&g<=1&&(a[p++]=g)}else{var A=(2*c*l-3*s*d)/(2*b(c*c*c)),I=Math.acos(A)/3,C=b(c),k=Math.cos(I),g=(-l-2*C*k)/(3*s),y=(-l+C*(k+S*Math.sin(I)))/(3*s),L=(-l+C*(k-S*Math.sin(I)))/(3*s);g>=0&&g<=1&&(a[p++]=g),y>=0&&y<=1&&(a[p++]=y),L>=0&&L<=1&&(a[p++]=L)}}return p}function l(t,e,i,o,a){var s=6*i-12*e+6*t,l=9*e+3*o-3*t-9*i,h=3*e-3*t,u=0;if(n(l)){if(r(s)){var c=-h/s;c>=0&&c<=1&&(a[u++]=c)}}else{var d=s*s-4*l*h;if(n(d))a[0]=-s/(2*l);else if(d>0){var f=b(d),c=(-s+f)/(2*l),p=(-s-f)/(2*l);c>=0&&c<=1&&(a[u++]=c),p>=0&&p<=1&&(a[u++]=p)}}return u}function h(t,e,i,n,r,o){var a=(e-t)*r+t,s=(i-e)*r+e,l=(n-i)*r+i,h=(s-a)*r+a,u=(l-s)*r+s,c=(u-h)*r+h;o[0]=t,o[1]=a,o[2]=h,o[3]=c,o[4]=c,o[5]=u,o[6]=l,o[7]=n}function u(t,e,i,n,r,a,s,l,h,u,c){var d,f,p,g,m,v=.005,y=1/0;A[0]=h,A[1]=u;for(var _=0;_<1;_+=.05)I[0]=o(t,i,r,s,_),I[1]=o(e,n,a,l,_),g=x(A,I),g=0&&g=0&&c<=1&&(a[u++]=c)}}else{var d=l*l-4*s*h;if(n(d)){var c=-l/(2*s);c>=0&&c<=1&&(a[u++]=c)}else if(d>0){var f=b(d),c=(-l+f)/(2*s),p=(-l-f)/(2*s);c>=0&&c<=1&&(a[u++]=c),p>=0&&p<=1&&(a[u++]=p)}}return u}function p(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function g(t,e,i,n,r){var o=(e-t)*n+t,a=(i-e)*n+e,s=(a-o)*n+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=i}function m(t,e,i,n,r,o,a,s,l){var h,u=.005,d=1/0;A[0]=a,A[1]=s;for(var f=0;f<1;f+=.05){I[0]=c(t,i,r,f),I[1]=c(e,n,o,f);var p=x(A,I);p=0&&p255?255:t}function n(t){return t=Math.round(t),t<0?0:t>360?360:t}function r(t){return t<0?0:t>1?1:t}function o(t){return i(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function a(t){return r(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function s(t,e,i){return i<0?i+=1:i>1&&(i-=1),6*i<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}function l(t,e,i){return t+(e-t)*i}function h(t){if(t){t+="";var e=t.replace(/ /g,"").toLowerCase();if(e in x)return x[e].slice();if("#"!==e.charAt(0)){var i=e.indexOf("("),n=e.indexOf(")");if(i!==-1&&n+1===e.length){var r=e.substr(0,i),s=e.substr(i+1,n-(i+1)).split(","),l=1;switch(r){case"rgba":if(4!==s.length)return;l=a(s.pop());case"rgb":if(3!==s.length)return;return[o(s[0]),o(s[1]),o(s[2]),l];case"hsla":if(4!==s.length)return;return s[3]=a(s[3]),u(s);case"hsl":if(3!==s.length)return;return u(s);default:return}}}else{if(4===e.length){var h=parseInt(e.substr(1),16);if(!(h>=0&&h<=4095))return;return[(3840&h)>>4|(3840&h)>>8,240&h|(240&h)>>4,15&h|(15&h)<<4,1]}if(7===e.length){var h=parseInt(e.substr(1),16);if(!(h>=0&&h<=16777215))return;return[(16711680&h)>>16,(65280&h)>>8,255&h,1]}}}}function u(t){var e=(parseFloat(t[0])%360+360)%360/360,n=a(t[1]),r=a(t[2]),o=r<=.5?r*(n+1):r+n-r*n,l=2*r-o,h=[i(255*s(l,o,e+1/3)),i(255*s(l,o,e)),i(255*s(l,o,e-1/3))];return 4===t.length&&(h[3]=t[3]),h}function c(t){if(t){var e,i,n=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(n,r,o),s=Math.max(n,r,o),l=s-a,h=(s+a)/2;if(0===l)e=0,i=0;else{i=h<.5?l/(s+a):l/(2-s-a);var u=((s-n)/6+l/2)/l,c=((s-r)/6+l/2)/l,d=((s-o)/6+l/2)/l;n===s?e=d-c:r===s?e=1/3+u-d:o===s&&(e=2/3+c-u),e<0&&(e+=1),e>1&&(e-=1)}var f=[360*e,i,h];return null!=t[3]&&f.push(t[3]),f}}function d(t,e){var i=h(t);if(i){for(var n=0;n<3;n++)e<0?i[n]=i[n]*(1-e)|0:i[n]=(255-i[n])*e+i[n]|0;return y(i,4===i.length?"rgba":"rgb")}}function f(t,e){var i=h(t);if(i)return((1<<24)+(i[0]<<16)+(i[1]<<8)+ +i[2]).toString(16).slice(1)}function p(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[0,0,0,0];var r=t*(e.length-1),o=Math.floor(r),a=Math.ceil(r),s=e[o],h=e[a],u=r-o;return n[0]=i(l(s[0],h[0],u)),n[1]=i(l(s[1],h[1],u)),n[2]=i(l(s[2],h[2],u)),n[3]=i(l(s[3],h[3],u)),n}}function g(t,e,n){if(e&&e.length&&t>=0&&t<=1){var o=t*(e.length-1),a=Math.floor(o),s=Math.ceil(o),u=h(e[a]),c=h(e[s]),d=o-a,f=y([i(l(u[0],c[0],d)),i(l(u[1],c[1],d)),i(l(u[2],c[2],d)),r(l(u[3],c[3],d))],"rgba");return n?{color:f,leftIndex:a,rightIndex:s,value:o}:f}}function m(t,e,i,r){if(t=h(t))return t=c(t),null!=e&&(t[0]=n(e)),null!=i&&(t[1]=a(i)),null!=r&&(t[2]=a(r)),y(u(t),"rgba")}function v(t,e){if(t=h(t),t&&null!=e)return t[3]=r(e),y(t,"rgba")}function y(t,e){var i=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(i+=","+t[3]),e+"("+i+")"}var x={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};t.exports={parse:h,lift:d,toHex:f,fastMapToColor:p,mapToColor:g,modifyHSL:m,modifyAlpha:v,stringify:y}},function(t,e){var i="undefined"==typeof Float32Array?Array:Float32Array,n={create:function(){var t=new i(6);return n.identity(t),t},identity:function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},copy:function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t},mul:function(t,e,i){var n=e[0]*i[0]+e[2]*i[1],r=e[1]*i[0]+e[3]*i[1],o=e[0]*i[2]+e[2]*i[3],a=e[1]*i[2]+e[3]*i[3],s=e[0]*i[4]+e[2]*i[5]+e[4],l=e[1]*i[4]+e[3]*i[5]+e[5];return t[0]=n,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t},translate:function(t,e,i){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+i[0],t[5]=e[5]+i[1],t},rotate:function(t,e,i){var n=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],h=Math.sin(i),u=Math.cos(i);return t[0]=n*u+a*h,t[1]=-n*h+a*u,t[2]=r*u+s*h,t[3]=-r*h+u*s,t[4]=u*o+h*l,t[5]=u*l-h*o,t},scale:function(t,e,i){var n=i[0],r=i[1];return t[0]=e[0]*n,t[1]=e[1]*r,t[2]=e[2]*n,t[3]=e[3]*r,t[4]=e[4]*n,t[5]=e[5]*r,t},invert:function(t,e){var i=e[0],n=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=i*a-o*n;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-n*l,t[3]=i*l,t[4]=(n*s-a*r)*l,t[5]=(o*r-i*s)*l,t):null}};t.exports=n},function(t,e){var i=Array.prototype.slice,n=function(){this._$handlers={}};n.prototype={constructor:n,one:function(t,e,i){var n=this._$handlers;if(!e||!t)return this;n[t]||(n[t]=[]);for(var r=0;r3&&(e=i.call(e,1));for(var r=this._$handlers[t],o=r.length,a=0;a4&&(e=i.call(e,1,e.length-1));for(var r=e[e.length-1],o=this._$handlers[t],a=o.length,s=0;s0&&u>0&&!c&&(h=0),h<0&&u<0&&!d&&(u=0)),[h,u]},h.niceScaleExtent=function(t,e){var i=t.scale,n=h.getScaleExtent(t,e),r=null!=e.getMin(),o=null!=e.getMax(),a=e.get("splitNumber");"log"===i.type&&(i.base=e.get("logBase")),i.setExtent(n[0],n[1]),i.niceExtent(a,r,o);var s=e.get("minInterval");if(isFinite(s)&&!r&&!o&&"interval"===i.type){var l=i.getInterval(),u=Math.max(Math.abs(l),s)/l;n=i.getExtent();var c=(n[1]+n[0])/2;i.setExtent(u*(n[0]-c)+c,u*(n[1]-c)+c),i.niceExtent(a)}var l=e.get("interval");null!=l&&i.setInterval&&i.setInterval(l)},h.createScaleByModel=function(t,e){if(e=e||t.get("type"))switch(e){case"category":return new n(t.getCategories(),[1/0,-(1/0)]);case"value":return new r;default:return(o.getClass(e)||r).create(t)}},h.ifAxisCrossZero=function(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||i<0&&n<0)},h.getAxisLabelInterval=function(t,e,i,n){var r,o=0,a=0,s=1;e.length>40&&(s=Math.floor(e.length/40));for(var h=0;h1?s:(o+1)*s-1},h.getFormattedLabels=function(t,e){var i=t.scale,n=i.getTicksLabels(),r=i.getTicks();return"string"==typeof e?(e=function(t){return function(e){return t.replace("{value}",null!=e?e:"")}}(e),s.map(n,e)):"function"==typeof e?s.map(r,function(n,r){return e("category"===t.type?i.getLabel(n):n,r)},this):n},t.exports=h},function(t,e,i){"use strict";function n(){this._coordinateSystems=[]}var r=i(1),o={};n.prototype={constructor:n,create:function(t,e){var i=[];r.each(o,function(n,r){var o=n.create(t,e);i=i.concat(o||[])}),this._coordinateSystems=i},update:function(t,e){r.each(this._coordinateSystems,function(i){i.update&&i.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},n.register=function(t,e){o[t]=e},n.get=function(t){return o[t]},t.exports=n},function(t,e,i){"use strict";var n=i(3),r=i(9),o=n.extendShape({type:"triangle", ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/js/echarts/echarts.common.min.js:14:"single"===r&&n.each(e,function(t){t.selected=!1}),i&&(i.selected=!0)},unSelect:function(t){var e=this._selectTargetMap[t];e&&(e.selected=!1)},toggleSelected:function(t){var e=this._selectTargetMap[t];if(null!=e)return this[e.selected?"unSelect":"select"](t),e.selected},isSelected:function(t){var e=this._selectTargetMap[t];return e&&e.selected}}},function(t,e,i){function n(t){r.defaultEmphasis(t.label,r.LABEL_OPTIONS)}var r=i(6),o=i(1),a=i(10),s=i(8),l=s.addCommas,h=s.encodeHTML,u=i(2).extendComponentModel({type:"marker",dependencies:["series","grid","polar","geo"],init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i),this.mergeOption(t,i,n.createdBySelf,!0)},isAnimationEnabled:function(){if(a.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e,i,r){var a=this.constructor,s=this.mainType+"Model";i||e.eachSeries(function(t){var i=t.get(this.mainType),l=t[s];return i&&i.data?(l?l.mergeOption(i,e,!0):(r&&n(i),o.each(i.data,function(t){t instanceof Array?(n(t[0]),n(t[1])):n(t)}),l=new a(i,this,e),o.extend(l,{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),l.__hostSeries=t),void(t[s]=l)):void(t[s]=null)},this)},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=o.isArray(i)?o.map(i,l).join(", "):l(i),r=e.getName(t),a=h(this.name);return(null!=i||r)&&(a+="
"),r&&(a+=h(r),null!=i&&(a+=" : ")),null!=i&&(a+=h(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});o.mixin(u,r.dataFormatMixin),t.exports=u},function(t,e,i){t.exports=i(2).extendComponentView({type:"marker",init:function(){this.markerGroupMap={}},render:function(t,e,i){var n=this.markerGroupMap;for(var r in n)n.hasOwnProperty(r)&&(n[r].__keep=!1);var o=this.type+"Model";e.eachSeries(function(t){var n=t[o];n&&this.renderSeries(t,n,e,i)},this);for(var r in n)n.hasOwnProperty(r)&&!n[r].__keep&&this.group.remove(n[r].group)},renderSeries:function(){}})},function(t,e,i){function n(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}function r(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}function o(t,e,i){var n=-1;do n=Math.max(l.getPrecision(t.get(e,i)),n),t=t.stackedOn;while(t);return n}function a(t,e,i,n,r,a){var s=[],l=m(e,n,t),h=e.indexOfNearest(n,l,!0);s[r]=e.get(i,h,!0),s[a]=e.get(n,h,!0);var u=o(e,n,h);return u>=0&&(s[a]=+s[a].toFixed(u)),s}var s=i(1),l=i(4),h=s.indexOf,u=s.curry,c={min:u(a,"min"),max:u(a,"max"),average:u(a,"average")},d=function(t,e){var i=t.getData(),n=t.coordinateSystem;if(e&&!r(e)&&!s.isArray(e.coord)&&n){var o=n.dimensions,a=f(e,i,n,t);if(e=s.clone(e),e.type&&c[e.type]&&a.baseAxis&&a.valueAxis){var l=h(o,a.baseAxis.dim),u=h(o,a.valueAxis.dim);e.coord=c[e.type](i,a.baseDataDim,a.valueDataDim,l,u),e.value=e.coord[u]}else{for(var d=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],p=0;p<2;p++)if(c[d[p]]){var g=t.coordDimToDataDim(o[p])[0];d[p]=m(i,g,d[p])}e.coord=d}}return e},f=function(t,e,i,n){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=i.getAxis(n.dataDimToCoordDim(r.valueDataDim)),r.baseAxis=i.getOtherAxis(r.valueAxis),r.baseDataDim=n.coordDimToDataDim(r.baseAxis.dim)[0]):(r.baseAxis=n.getBaseAxis(),r.valueAxis=i.getOtherAxis(r.baseAxis),r.baseDataDim=n.coordDimToDataDim(r.baseAxis.dim)[0],r.valueDataDim=n.coordDimToDataDim(r.valueAxis.dim)[0]),r},p=function(t,e){return!(t&&t.containData&&e.coord&&!n(e))||t.containData(e.coord)},g=function(t,e,i,n){return n<2?t.coord&&t.coord[n]:t.value},m=function(t,e,i){if("average"===i){var n=0,r=0;return t.each(e,function(t,e){isNaN(t)||(n+=t,r++)},!0),n/r}return t.getDataExtent(e,!0)["max"===i?1:0]};t.exports={dataTransform:d,dataFilter:p,dimValueGetter:g,getAxisInfo:f,numCalculate:m}},,function(t,e){t.exports=function(t,e){var i={};e.eachRawSeriesByType(t,function(t){var n=t.getRawData(),r={};if(!e.isSeriesFiltered(t)){var o=t.getData();o.each(function(t){var e=o.getRawIndex(t);r[e]=t}),n.each(function(e){var a=r[e],s=null!=a&&o.getItemVisual(a,"color",!0);if(s)n.setItemVisual(e,"color",s);else{var l=n.getItemModel(e),h=l.get("itemStyle.normal.color")||t.getColorFromPalette(n.getName(e),i);n.setItemVisual(e,"color",h),null!=a&&o.setItemVisual(a,"color",h)}})}})}},function(t,e,i){var n=i(5),r=i(18),o={},a=Math.min,s=Math.max,l=Math.sin,h=Math.cos,u=n.create(),c=n.create(),d=n.create(),f=2*Math.PI;o.fromPoints=function(t,e,i){if(0!==t.length){var n,r=t[0],o=r[0],l=r[0],h=r[1],u=r[1];for(n=1;n1e-4)return p[0]=t-i,p[1]=e-r,g[0]=t+i,void(g[1]=e+r);if(u[0]=h(o)*i+t,u[1]=l(o)*r+e,c[0]=h(a)*i+t,c[1]=l(a)*r+e,m(p,u,c),v(g,u,c),o%=f,o<0&&(o+=f),a%=f,a<0&&(a+=f),o>a&&!s?a+=f:oo&&(d[0]=h(_)*i+t,d[1]=l(_)*r+e,m(p,d,p),v(g,d,g))},t.exports=o},function(t,e,i){var n=i(36),r=i(1),o=i(17),a=function(t){n.call(this,t)};a.prototype={constructor:a,type:"text",brush:function(t,e){var i=this.style,n=i.x||0,r=i.y||0,a=i.text;if(null!=a&&(a+=""),i.bind(t,this,e),a){this.setTransform(t);var s,l=i.textAlign,h=i.textFont||i.font;if(i.textVerticalAlign){var u=o.getBoundingRect(a,h,i.textAlign,"top");switch(s="middle",i.textVerticalAlign){case"middle":r-=u.height/2-u.lineHeight/2;break;case"bottom":r-=u.height-u.lineHeight/2;break;default:r+=u.lineHeight/2}}else s=i.textBaseline;t.font=h||"12px sans-serif",t.textAlign=l||"left",t.textAlign!==l&&(t.textAlign="left"),t.textBaseline=s||"alphabetic",t.textBaseline!==s&&(t.textBaseline="alphabetic");for(var c=o.measureText("国",t.font).width,d=a.split("\n"),f=0;f=0?parseFloat(t)/100*e:parseFloat(t):t}var r=i(17),o=i(9),a=new o,s=function(){};s.prototype={constructor:s,drawRectText:function(t,e,i){var o=this.style,s=o.text;if(null!=s&&(s+=""),s){t.save();var l,h,u=o.textPosition,c=o.textOffset,d=o.textDistance,f=o.textAlign,p=o.textFont||o.font,g=o.textBaseline,m=o.textVerticalAlign;i=i||r.getBoundingRect(s,p,f,g);var v=this.transform;if(o.textTransform?this.setTransform(t):v&&(a.copy(e),a.applyTransform(v),e=a),u instanceof Array){if(l=e.x+n(u[0],e.width),h=e.y+n(u[1],e.height),f=f||"left",g=g||"top",m){switch(m){case"middle":h-=i.height/2-i.lineHeight/2;break;case"bottom":h-=i.height-i.lineHeight/2;break;default:h+=i.lineHeight/2}g="middle"}}else{var y=r.adjustTextPositionOnRect(u,e,i,d);l=y.x,h=y.y,f=f||y.textAlign,g=g||y.textBaseline}c&&(l+=c[0],h+=c[1]),t.textAlign=f||"left",t.textBaseline=g||"alphabetic";var x=o.textFill,_=o.textStroke;x&&(t.fillStyle=x),_&&(t.strokeStyle=_),t.font=p||"12px sans-serif",t.shadowBlur=o.textShadowBlur,t.shadowColor=o.textShadowColor||"transparent",t.shadowOffsetX=o.textShadowOffsetX,t.shadowOffsetY=o.textShadowOffsetY;var b=s.split("\n");o.textRotation&&(v&&t.translate(v[4],v[5]),t.rotate(o.textRotation),v&&t.translate(-v[4],-v[5]));for(var w=0;wi.getHeight()&&(n.textPosition="top",s=!0);var l=s?-5-r.height:g+8;o+r.width/2>i.getWidth()?(n.textPosition=["100%",l],n.textAlign="right"):o-r.width/2<0&&(n.textPosition=[0,l],n.textAlign="left")}})}},updateView:function(t,e,i,n){o.each(this._features,function(t){t.updateView&&t.updateView(t.model,e,i,n)})},updateLayout:function(t,e,i,n){o.each(this._features,function(t){t.updateLayout&&t.updateLayout(t.model,e,i,n)})},remove:function(t,e){o.each(this._features,function(i){i.remove&&i.remove(t,e)}),this.group.removeAll()},dispose:function(t,e){o.each(this._features,function(i){i.dispose&&i.dispose(t,e)})}})}).call(e,i(175))},function(t,e,i){function n(t){var e={},i=[],n=[];return t.eachRawSeries(function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)i.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},n.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else i.push(t)}}),{seriesGroupByCategoryAxis:e,other:i,meta:n}}function r(t){var e=[];return p.each(t,function(t,i){var n=t.categoryAxis,r=t.valueAxis,o=r.dim,a=[" "].concat(p.map(t.series,function(t){return t.name})),s=[n.model.getCategories()];p.each(t.series,function(t){s.push(t.getRawData().mapArray(o,function(t){return t}))});for(var l=[a.join(v)],h=0;h=0)return!0}function h(t){for(var e=t.split(/\n+/g),i=s(e.shift()).split(y),n=[],r=p.map(i,function(t){return{name:t,data:[]}}),o=0;o1?"emphasis":"normal")}function a(t,e,i,n){var o=i._isZoomActive;n&&"takeGlobalCursor"===n.type&&(o="dataZoomSelect"===n.key&&n.dataZoomSelectActive),i._isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=h.makeCoordInfoList(r(t.option),e),s=a.xAxisHas&&!a.yAxisHas?"lineX":!a.xAxisHas&&a.yAxisHas?"lineY":"rect";i._brushController.setPanels(h.makePanelOpts(a)).enableBrush(!!o&&{brushType:s,brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}var s=i(1),l=i(115),h=i(116),u=i(113),c=s.each;i(190);var d="\0_ec_\0toolbox-dataZoom_";n.defaultOption={show:!0,icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:{zoom:"区域缩放",back:"区域缩放还原"}};var f=n.prototype;f.render=function(t,e,i,n){this.model=t,this.ecModel=e,this.api=i,a(t,e,this,n),o(t,e)},f.onclick=function(t,e,i){p[i].call(this)},f.remove=function(t,e){this._brushController.unmount()},f.dispose=function(t,e){this._brushController.dispose()};var p={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(u.pop(this.ecModel))}};f._onBrush=function(t,e){function i(t,e,i){var r=n(t,i[t],a);r&&(o[r.id]={dataZoomId:r.id,startValue:e[0],endValue:e[1]})}function n(t,e,i){var n;return i.eachComponent({mainType:"dataZoom",subType:"select"},function(r,o){var a=r.get(t+"Index");null!=a&&i.getComponent(t,a)===e&&(n=r)}),n}if(e.isEnd&&t.length){var o={},a=this.ecModel;this._brushController.updateCovers([]);var s=h.makeCoordInfoList(r(this.model.option),a),l=[];h.parseOutputRanges(t,s,a,l);var c=t[0],d=l[0],f=c.coordRange,p=c.brushType;if(d&&f)if("rect"===p)i("xAxis",f[0],d),i("yAxis",f[1],d);else{var g={lineX:"xAxis",lineY:"yAxis"};i(g[p],f,d)}u.push(a,o),this._dispatchZoomAction(o)}},f._dispatchZoomAction=function(t){var e=[];c(t,function(t,i){e.push(s.clone(t))}),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},i(26).register("dataZoom",n),i(2).registerPreprocessor(function(t){function e(t,e){if(e){var r=t+"Index",o=e[r];null==o||"all"==o||s.isArray(o)||(o=o===!1||"none"===o?[]:[o]),i(t,function(e,i){if(null==o||"all"==o||s.indexOf(o,i)!==-1){var a={type:"select",$fromToolbox:!0,id:d+t+i};a[r]=i,n.push(a)}})}}function i(e,i){var n=t[e];s.isArray(n)||(n=n?[n]:[]),c(n,i)}if(t){var n=t.dataZoom||(t.dataZoom=[]);s.isArray(n)||(t.dataZoom=n=[n]);var r=t.toolbox;if(r&&(s.isArray(r)&&(r=r[0]),r&&r.feature)){var o=r.feature.dataZoom;e("xAxis",o),e("yAxis",o)}}}),t.exports=n},function(t,e,i){"use strict";function n(t){this.model=t}var r=i(1);n.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"},option:{},seriesIndex:{}};var o=n.prototype;o.getIcons=function(){var t=this.model,e=t.get("icon"),i={};return r.each(t.get("type"),function(t){e[t]&&(i[t]=e[t])}),i};var a={line:function(t,e,i,n){if("bar"===t)return r.merge({id:e,type:"line",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.line")||{},!0)},bar:function(t,e,i,n){if("line"===t)return r.merge({id:e,type:"bar",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},n.get("option.bar")||{},!0)},stack:function(t,e,i,n){if("line"===t||"bar"===t)return r.merge({id:e,stack:"__ec_magicType_stack__"},n.get("option.stack")||{},!0)},tiled:function(t,e,i,n){if("line"===t||"bar"===t)return r.merge({id:e,stack:""},n.get("option.tiled")||{},!0)}},s=[["line","bar"],["stack","tiled"]];o.onclick=function(t,e,i){var n=this.model,o=n.get("seriesIndex."+i);if(a[i]){var l={series:[]},h=function(e){var o=e.subType,s=e.id,h=a[i](o,s,e,n);h&&(r.defaults(h,e.option),l.series.push(h));var u=e.coordinateSystem;if(u&&"cartesian2d"===u.type&&("line"===i||"bar"===i)){var c=u.getAxesByScale("ordinal")[0];if(c){var d=c.dim,f=d+"Axis",p=t.queryComponents({mainType:f,index:e.get(name+"Index"),id:e.get(name+"Id")})[0],g=p.componentIndex;l[f]=l[f]||[];for(var m=0;m<=g;m++)l[f][g]=l[f][g]||{};l[f][g].boundaryGap="bar"===i}}};r.each(s,function(t){r.indexOf(t,i)>=0&&r.each(t,function(t){n.setIconStatus(t,"normal")})}),n.setIconStatus(i,"emphasis"),t.eachComponent({mainType:"series",query:null==o?null:{seriesIndex:o}},h),e.dispatchAction({type:"changeMagicType",currentType:i,newOption:l})}};var l=i(2);l.registerAction({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),i(26).register("magicType",n),t.exports=n},function(t,e,i){"use strict";function n(t){this.model=t}var r=i(113);n.defaultOption={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:"还原"};var o=n.prototype;o.onclick=function(t,e,i){r.clear(t),e.dispatchAction({type:"restore",from:this.uid})},i(26).register("restore",n),i(2).registerAction({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")}),t.exports=n},function(t,e,i){function n(t){this.model=t}var r=i(10);n.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:"保存为图片",type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:["右键另存为图片"]},n.prototype.unusable=!r.canvasSupported;var o=n.prototype;o.onclick=function(t,e){var i=this.model,n=i.get("name")||t.get("title.0.text")||"echarts",o=document.createElement("a"),a=i.get("type",!0)||"png";o.download=n+"."+a,o.target="_blank";var s=e.getConnectedDataURL({type:a,backgroundColor:i.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",excludeComponents:i.get("excludeComponents"),pixelRatio:i.get("pixelRatio")});if(o.href=s,"function"!=typeof MouseEvent||r.browser.ie||r.browser.edge){var l=i.get("lang"),h='',u=window.open();u.document.write(h)}else{var c=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});o.dispatchEvent(c)}},i(26).register("saveAsImage",n),t.exports=n},function(t,e,i){i(217),i(218),i(2).registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),i(2).registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){})},function(t,e,i){function n(t){var e="cubic-bezier(0.23, 1, 0.32, 1)",i="left "+t+"s "+e+",top "+t+"s "+e;return s.map(p,function(t){return t+"transition:"+i}).join(";")}function r(t){var e=[],i=t.get("fontSize"),n=t.getTextColor();return n&&e.push("color:"+n),e.push("font:"+t.getFont()),i&&e.push("line-height:"+Math.round(3*i/2)+"px"),c(["decoration","align"],function(i){var n=t.get(i);n&&e.push("text-"+i+":"+n)}),e.join(";")}function o(t){t=t;var e=[],i=t.get("transitionDuration"),o=t.get("backgroundColor"),a=t.getModel("textStyle"),s=t.get("padding");return i&&e.push(n(i)),o&&(f.canvasSupported?e.push("background-Color:"+o):(e.push("background-Color:#"+l.toHex(o)),e.push("filter:alpha(opacity=70)"))),c(["width","color","radius"],function(i){var n="border-"+i,r=d(n),o=t.get(r);null!=o&&e.push(n+":"+o+("color"===i?"":"px"))}),e.push(r(a)),null!=s&&e.push("padding:"+u.normalizeCssArray(s).join("px ")+"px"),e.join(";")+";"}function a(t,e){var i=document.createElement("div"),n=e.getZr();this.el=i,this._x=e.getWidth()/2,this._y=e.getHeight()/2,t.appendChild(i),this._container=t,this._show=!1,this._hideTimeout;var r=this;i.onmouseenter=function(){r.enterable&&(clearTimeout(r._hideTimeout),r._show=!0),r._inContent=!0},i.onmousemove=function(e){if(e=e||window.event,!r.enterable){var i=n.handler;h.normalizeEvent(t,e,!0),i.dispatch("mousemove",e)}},i.onmouseleave=function(){r.enterable&&r._show&&r.hideLater(r._hideDelay),r._inContent=!1}}var s=i(1),l=i(19),h=i(25),u=i(8),c=s.each,d=u.toCamelCase,f=i(10),p=["","-webkit-","-moz-","-o-"],g="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;";a.prototype={constructor:a,enterable:!0,update:function(){var t=this._container,e=t.currentStyle||document.defaultView.getComputedStyle(t),i=t.style;"absolute"!==i.position&&"absolute"!==e.position&&(i.position="relative")},show:function(t){clearTimeout(this._hideTimeout);var e=this.el;e.style.cssText=g+o(t)+";left:"+this._x+"px;top:"+this._y+"px;"+(t.get("extraCssText")||""),e.style.display=e.innerHTML?"block":"none",this._show=!0},setContent:function(t){var e=this.el;e.innerHTML=t,e.style.display=t?"block":"none"},moveTo:function(t,e){var i=this.el.style;i.left=t+"px",i.top=e+"px",this._x=t,this._y=e},hide:function(){this.el.style.display="none",this._show=!1},hideLater:function(t){!this._show||this._inContent&&this.enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(s.bind(this.hide,this),t)):this.hide())},isShow:function(){return this._show}},t.exports=a},function(t,e,i){i(2).extendComponentModel({type:"tooltip",defaultOption:{zlevel:0,z:8,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove",alwaysShowContent:!1,confine:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(50,50,50,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:!0,animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",lineStyle:{color:"#555",width:1,type:"solid"},crossStyle:{color:"#555",width:1,type:"dashed",textStyle:{}},shadowStyle:{color:"rgba(150,150,150,0.3)"}},textStyle:{color:"#fff",fontSize:14}}})},function(t,e,i){function n(t,e){if(!t||!e)return!1;var i=m.round;return i(t[0])===i(e[0])&&i(t[1])===i(e[1])}function r(t,e,i,n){return{x1:t,y1:e,x2:i,y2:n}}function o(t,e,i,n){return{x:t,y:e,width:i,height:n}}function a(t,e,i,n,r,o){return{cx:t,cy:e,r0:i,r:n,startAngle:r,endAngle:o,clockwise:!0}}function s(t,e,i,n,r){var o=i.clientWidth,a=i.clientHeight,s=20;return t+o+s>n?t-=o+s:t+=s,e+a+s>r?e-=a+s:e+=s,[t,e]}function l(t,e,i,n,r){var o=i.clientWidth,a=i.clientHeight;return t=Math.min(t+o,n)-o,e=Math.min(e+a,r)-a,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function h(t,e,i){var n=i.clientWidth,r=i.clientHeight,o=5,a=0,s=0,l=e.width,h=e.height;switch(t){case"inside":a=e.x+l/2-n/2,s=e.y+h/2-r/2;break;case"top":a=e.x+l/2-n/2,s=e.y-r-o;break;case"bottom":a=e.x+l/2-n/2,s=e.y+h+o;break;case"left":a=e.x-n-o,s=e.y+h/2-r/2;break;case"right":a=e.x+l+o,s=e.y+h/2-r/2}return[a,s]}function u(t,e,i,n,r,o,a,u){var c=u.getWidth(),d=u.getHeight(),f=a&&a.getBoundingRect().clone();if(a&&f.applyTransform(a.transform),"function"==typeof t&&(t=t([e,i],o,r.el,f)),p.isArray(t))e=y(t[0],c),i=y(t[1],d);else if("string"==typeof t&&a){var g=h(t,f,r.el);e=g[0],i=g[1]}else{var g=s(e,i,r.el,c,d);e=g[0],i=g[1]}if(n){var g=l(e,i,r.el,c,d);e=g[0],i=g[1]}r.moveTo(e,i)}function c(t){var e=t.coordinateSystem,i=t.get("tooltip.trigger",!0);return!(!e||"cartesian2d"!==e.type&&"polar"!==e.type&&"singleAxis"!==e.type||"item"===i)}var d=i(216),f=i(3),p=i(1),g=i(8),m=i(4),v=i(6),y=m.parsePercent,x=i(10),_=i(11);i(2).extendComponentView({type:"tooltip",_axisPointers:{},init:function(t,e){if(!x.node){var i=new d(e.getDom(),e);this._tooltipContent=i}},render:function(t,e,i){if(!x.node){this.group.removeAll(),this._axisPointers={},this._tooltipModel=t,this._ecModel=e,this._api=i,this._lastHover={};var n=this._tooltipContent;n.update(),n.enterable=t.get("enterable"),this._alwaysShowContent=t.get("alwaysShowContent"),this._seriesGroupByAxis=this._prepareAxisTriggerData(t,e);var r=this._crossText;r&&this.group.add(r);var o=t.get("triggerOn");if(null!=this._lastX&&null!=this._lastY&&"none"!==o){var a=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){a.manuallyShowTip(t,e,i,{x:a._lastX,y:a._lastY})})}var s=this._api.getZr();s.off("click",this._tryShow),s.off("mousemove",this._mousemove),s.off("mouseout",this._hide),s.off("globalout",this._hide),"click"===o?s.on("click",this._tryShow,this):"mousemove"===o&&(s.on("mousemove",this._mousemove,this),s.on("mouseout",this._hide,this),s.on("globalout",this._hide,this))}},_mousemove:function(t){var e=this._tooltipModel.get("showDelay"),i=this;clearTimeout(this._showTimeout),e>0?this._showTimeout=setTimeout(function(){i._tryShow(t)},e):this._tryShow(t)},manuallyShowTip:function(t,e,i,n){function r(t){var e=t.getData(),i=v.queryDataIndex(e,n);if(null!=i&&!p.isArray(i)&&e.hasValue(i))return!0}if(n.from!==this.uid){var e=this._ecModel,o=n.seriesIndex,a=e.getSeriesByIndex(o),i=this._api,s="axis"===this._tooltipModel.get("trigger");if(null==n.x||null==n.y){if(s?(a&&!r(a)&&(a=null),a||e.eachSeries(function(t){c(t)&&!a&&r(t)&&(a=t)})):a=a||e.getSeriesByIndex(0),a){var l=a.getData(),h=v.queryDataIndex(l,n);if(null==h||p.isArray(h))return;var u,d,f=l.getItemGraphicEl(h),g=a.coordinateSystem;if(a.getTooltipPosition){var m=a.getTooltipPosition(h)||[];u=m[0],d=m[1]}else if(g&&g.dataToPoint){var m=g.dataToPoint(l.getValues(p.map(g.dimensions,function(t){return a.coordDimToDataDim(t)[0]}),h,!0));u=m&&m[0],d=m&&m[1]}else if(f){var y=f.getBoundingRect().clone();y.applyTransform(f.transform),u=y.x+y.width/2,d=y.y+y.height/2}null!=u&&null!=d&&this._tryShow({offsetX:u,offsetY:d,position:n.position,target:f,event:{}})}}else{var f=i.getZr().handler.findHover(n.x,n.y);this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,target:f,event:{}})}}},manuallyHideTip:function(t,e,i,n){n.from!==this.uid&&this._hide()},_prepareAxisTriggerData:function(t,e){var i={};return e.eachSeries(function(t){if(c(t)){var e,n,r=t.coordinateSystem;"cartesian2d"===r.type?(e=r.getBaseAxis(),n=e.dim+e.index):"singleAxis"===r.type?(e=r.getAxis(),n=e.dim+e.type):(e=r.getBaseAxis(),n=e.dim+r.name),i[n]=i[n]||{coordSys:[],series:[]},i[n].coordSys.push(r),i[n].series.push(t)}},this),i},_tryShow:function(t){var e=t.target,i=this._tooltipModel,n=i.get("trigger"),r=this._ecModel,o=this._api;if(i)if(this._lastX=t.offsetX,this._lastY=t.offsetY,e&&null!=e.dataIndex){var a=e.dataModel||r.getSeriesByIndex(e.seriesIndex),s=e.dataIndex,l=a.getData(),h=l.getItemModel(s);"axis"===(h.get("tooltip.trigger")||n)?this._showAxisTooltip(i,r,t):(this._ticket="",this._hideAxisPointer(),this._resetLastHover(),this._showItemTooltipContent(a,s,e.dataType,t)),o.dispatchAction({type:"showTip",from:this.uid,dataIndexInside:s,dataIndex:l.getRawIndex(s),seriesIndex:e.seriesIndex})}else if(e&&e.tooltip){var u=e.tooltip;if("string"==typeof u){var c=u;u={content:c,formatter:c}}var d=new _(u,i),f=d.get("content"),p=Math.random();this._showTooltipContent(d,f,d.get("formatterParams")||{},p,t.offsetX,t.offsetY,t.position,e,o)}else"item"===n?this._hide():this._showAxisTooltip(i,r,t),"cross"===i.get("axisPointer.type")&&o.dispatchAction({type:"showTip",from:this.uid,x:t.offsetX,y:t.offsetY})},_showAxisTooltip:function(t,e,i){var r=t.getModel("axisPointer"),o=r.get("type");if("cross"===o){var a=i.target;if(a&&null!=a.dataIndex){var s=e.getSeriesByIndex(a.seriesIndex),l=a.dataIndex;this._showItemTooltipContent(s,l,a.dataType,i)}}this._showAxisPointer();var h=!0;p.each(this._seriesGroupByAxis,function(e){var a=e.coordSys,s=a[0],l=[i.offsetX,i.offsetY];if(!s.containPoint(l))return void this._hideAxisPointer(s.name);h=!1;var u=s.dimensions,c=s.pointToData(l,!0);l=s.dataToPoint(c);var d=s.getBaseAxis(),f=r.get("axis");if("auto"===f&&(f=d.dim),d.isBlank()||p.eqNaN(l[0])||p.eqNaN(l[1]))return void this._hideAxisPointer(s.name);var g=!1,m=this._lastHover;if("cross"===o)n(m.data,c)&&(g=!0),m.data=c;else{var v=p.indexOf(u,f);m.data===c[v]&&(g=!0),m.data=c[v]}var y=t.get("animation");"cartesian2d"!==s.type||g?"polar"!==s.type||g?"singleAxis"!==s.type||g||this._showSinglePointer(r,s,f,l,y):this._showPolarPointer(r,s,f,l,y):this._showCartesianPointer(r,s,f,l,y),"cross"!==o&&this._dispatchAndShowSeriesTooltipContent(s,e.series,l,c,g,i.position)},this),this._tooltipModel.get("show")||this._hideAxisPointer(),h&&this._hide()},_showCartesianPointer:function(t,e,i,n,a){function s(i,n,o){var a="x"===i?r(n[0],o[0],n[0],o[1]):r(o[0],n[1],o[1],n[1]),s=h._getPointerElement(e,t,i,a);f.subPixelOptimizeLine({shape:a,style:s.style}),d?f.updateProps(s,{shape:a},t):s.attr({shape:a})}function l(i,n,r){var a=e.getAxis(i),s=a.getBandWidth(),l=r[1]-r[0],u="x"===i?o(n[0]-s/2,r[0],s,l):o(r[0],n[1]-s/2,l,s),c=h._getPointerElement(e,t,i,u);d?f.updateProps(c,{shape:u},t):c.attr({shape:u})}var h=this,u=t.get("type"),c=e.getBaseAxis(),d=a&&"cross"!==u&&"category"===c.type&&c.getBandWidth()>20;if("cross"===u)s("x",n,e.getAxis("y").getGlobalExtent()),s("y",n,e.getAxis("x").getGlobalExtent()),this._updateCrossText(e,n,t);else{var p=e.getAxis("x"===i?"y":"x"),g=p.getGlobalExtent();"cartesian2d"===e.type&&("line"===u?s:l)(i,n,g)}},_showSinglePointer:function(t,e,i,n,o){function a(i,n,o){var a=e.getAxis(),l=a.orient,u="horizontal"===l?r(n[0],o[0],n[0],o[1]):r(o[0],n[1],o[1],n[1]),c=s._getPointerElement(e,t,i,u);h?f.updateProps(c,{shape:u},t):c.attr({shape:u})}var s=this,l=t.get("type"),h=o&&"cross"!==l&&"category"===e.getBaseAxis().type,u=e.getRect(),c=[u.y,u.y+u.height];a(i,n,c)},_showPolarPointer:function(t,e,i,n,o){function s(i,n,o){var a,s=e.pointToCoord(n);if("angle"===i){var l=e.coordToPoint([o[0],s[1]]),u=e.coordToPoint([o[1],s[1]]);a=r(l[0],l[1],u[0],u[1])}else a={cx:e.cx,cy:e.cy,r:s[0]};var c=h._getPointerElement(e,t,i,a);p?f.updateProps(c,{shape:a},t):c.attr({shape:a})}function l(i,n,r){var o,s=e.getAxis(i),l=s.getBandWidth(),u=e.pointToCoord(n),c=Math.PI/180;o="angle"===i?a(e.cx,e.cy,r[0],r[1],(-u[1]-l/2)*c,(-u[1]+l/2)*c):a(e.cx,e.cy,u[0]-l/2,u[0]+l/2,0,2*Math.PI);var d=h._getPointerElement(e,t,i,o);p?f.updateProps(d,{shape:o},t):d.attr({shape:o})}var h=this,u=t.get("type"),c=e.getAngleAxis(),d=e.getRadiusAxis(),p=o&&"cross"!==u&&"category"===e.getBaseAxis().type;if("cross"===u)s("angle",n,d.getExtent()),s("radius",n,c.getExtent()),this._updateCrossText(e,n,t);else{var g=e.getAxis("radius"===i?"angle":"radius"),m=g.getExtent();("line"===u?s:l)(i,n,m)}},_updateCrossText:function(t,e,i){var n=i.getModel("crossStyle"),r=n.getModel("textStyle"),o=this._tooltipModel,a=this._crossText;a||(a=this._crossText=new f.Text({style:{textAlign:"left",textVerticalAlign:"bottom"}}),this.group.add(a));var s=t.pointToData(e),l=t.dimensions;s=p.map(s,function(e,i){var n=t.getAxis(l[i]);return e="category"===n.type||"time"===n.type?n.scale.getLabel(e):g.addCommas(e.toFixed(n.getPixelPrecision()))}),a.setStyle({fill:r.getTextColor()||n.get("color"),textFont:r.getFont(),text:s.join(", "),x:e[0]+5,y:e[1]-5}),a.z=o.get("z"),a.zlevel=o.get("zlevel")},_getPointerElement:function(t,e,i,n){var r=this._tooltipModel,o=r.get("z"),a=r.get("zlevel"),s=this._axisPointers,l=t.name;if(s[l]=s[l]||{},s[l][i])return s[l][i];var h=e.get("type"),u=e.getModel(h+"Style"),c="shadow"===h,d=u[c?"getAreaStyle":"getLineStyle"](),p="polar"===t.type?c?"Sector":"radius"===i?"Circle":"Line":c?"Rect":"Line";c?d.stroke=null:d.fill=null;var g=s[l][i]=new f[p]({style:d,z:o,zlevel:a,silent:!0,shape:n});return this.group.add(g),g},_dispatchAndShowSeriesTooltipContent:function(t,e,i,n,r,o){var a=this._tooltipModel,s=t.getBaseAxis(),l={x:1,radius:1,single:1}[s.dim]?0:1;if(e.length){var h,c=p.map(e,function(t){return{seriesIndex:t.seriesIndex,dataIndexInside:t.getAxisTooltipDataIndex?t.getAxisTooltipDataIndex(t.coordDimToDataDim(s.dim),n,s):t.getData().indexOfNearest(t.coordDimToDataDim(s.dim)[0],n[l],!1,"category"===s.type?.5:null)}});p.each(c,function(t,i){e[i].getData().hasValue(t.dataIndexInside)&&(h=i)}),h=h||0;var d=this._lastHover,f=this._api;d.payloadBatch&&!r&&f.dispatchAction({type:"downplay",batch:d.payloadBatch}),r||(f.dispatchAction({type:"highlight",batch:c}),d.payloadBatch=c);var m=c[h].dataIndexInside;if(f.dispatchAction({type:"showTip",dataIndexInside:m,dataIndex:e[h].getData().getRawIndex(m),seriesIndex:c[h].seriesIndex,from:this.uid}),s&&a.get("showContent")&&a.get("show")){var v=p.map(e,function(t,e){return t.getDataParams(c[e].dataIndexInside)});if(r)u(o||a.get("position"),i[0],i[1],a.get("confine"),this._tooltipContent,v,null,f);else{var y=c[h].dataIndexInside,x="time"===s.type?s.scale.getLabel(n[l]):e[h].getData().getName(y),_=(x?g.encodeHTML(x)+"
":"")+p.map(e,function(t,e){return t.formatTooltip(c[e].dataIndexInside,!0)}).join("
"),b="axis_"+t.name+"_"+y;this._showTooltipContent(a,_,v,b,i[0],i[1],o,null,f)}}}},_showItemTooltipContent:function(t,e,i,n){var r=this._api,o=t.getData(i),a=o.getItemModel(e),s=a.get("tooltip",!0);if("string"==typeof s){var l=s;s={formatter:l}}var h=this._tooltipModel,u=t.getModel("tooltip",h),c=new _(s,u,u.ecModel),d=t.getDataParams(e,i),f=t.formatTooltip(e,!1,i),p="item_"+t.name+"_"+e; ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/index.html:513: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/index.html:692: ./apigateway/apiroute/apiroute-service/src/main/resources/iui-route/index.html:907: ./apigateway/apiroute/apiroute-service/src/test/java/org/onap/msb/apiroute/wrapper/MicroServiceWrapperTest.java:177: // 添加多版本服务 ./apigateway/apiroute/apiroute-service/src/test/java/org/onap/msb/apiroute/wrapper/MicroServiceWrapperTest.java:185: // 删除不存在实例 ./apigateway/apiroute/apiroute-service/src/test/java/org/onap/msb/apiroute/wrapper/MicroServiceWrapperTest.java:193: // 删除其中一个实例 ./apigateway/apiroute/apiroute-service/src/test/java/org/onap/msb/apiroute/wrapper/MicroServiceWrapperTest.java:201: // 删除服务 Fichier binaire ./apigateway/apiroute/apiroute-service/src/test/resources/ext/initRouteLabels/readme.txt correspondant ./apigateway/apiroute/apiroute-service/pom.xml:38: Fichier binaire ./apigateway/apiroute/apiroute-standalone/src/assembly/resources/apiroute/ext/initRouteLabels/readme.txt correspondant ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/JacksonJsonUtil.java:43: * 获取ObjectMapper实例 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/JacksonJsonUtil.java:45: * @param createNew 方式:true,新实例;false,存在的mapper实例 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/JacksonJsonUtil.java:56: * 将java对象转换成json字符串 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/JacksonJsonUtil.java:58: * @param obj 准备转换的对象 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/JacksonJsonUtil.java:59: * @return json字符串 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/JacksonJsonUtil.java:76: * 将json字符串转换成java对象 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/JacksonJsonUtil.java:78: * @param json 准备转换的json字符串 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/JacksonJsonUtil.java:79: * @param cls 准备转换的类 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/MsbUtil.java:26: * @Description: TODO(msb功能工具方法类) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/MsbUtil.java:28: * @date 2017年6月26日 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/MsbUtil.java:36: * @Description TODO(通过服务名和命名空间组装conusl存储名,用于服务变化监听) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/MsbUtil.java:67: // 版本号格式检查 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/util/MsbUtil.java:80: // HOST空值和格式检查 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/entity/RouteResult.java:18: * @Description: TODO(ApiRoute操作返回类) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/entity/RouteResult.java:20: * @date 2015年9月25日 上午11:24:42 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/entity/NodeInfo.java:28: private String status; // 实例健康检查状态 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/entity/MicroServiceInfo.java:21: * @Description:微服务信息实体类 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/entity/Node.java:31: // 健康检查参数 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:34: * @Description TODO(查询单个微服务) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:35: * @param msbAddress 微服务服务器地址( ip:port 或 域名地址) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:36: * @param serviceName 服务名[必填,若自定义服务名包含/,用*代替] ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:37: * @param version 版本号[若无版本号,传空字符串] ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:64: * @Description TODO(注册微服务-默认追加方式) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:65: * @param msbAddress 微服务服务器地址( ip:port 或 域名地址) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:66: * @param microServiceInfo 微服务注册实体类 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:78: * @Description TODO(注册微服务) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:79: * @param msbAddress 微服务服务器地址( ip:port 或 域名地址) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:80: * @param microServiceInfo 微服务注册实体类 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:81: * @param createOrUpdate true:新增或追加更新 ,false:重新添加 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:88: // 必填项空值检查 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:98: // 版本号格式检查 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:107: // 服务协议取值范围检查 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:131: * @Description TODO(注销全部微服务) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:132: * @param msbAddress 微服务服务器地址( ip:port 或 域名地址) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:133: * @param serviceName 服务名[必填,若自定义服务名包含/,用*代替] ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:134: * @param version 版本号[若无版本号,传空字符串] ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:163: * @Description TODO(注销单个微服务) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:164: * @param msbAddress 微服务服务器地址( ip:port 或 域名地址) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:165: * @param serviceName 服务名[必填,若自定义服务名包含/,用*代替] ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:166: * @param version 版本号[若无版本号,传空字符串] ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:202: * @Description TODO(请求服务实例TTL健康检查) ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:204: * @param serviceName 服务名 ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:205: * @param version 版本号[若无版本号,传空字符串] ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:206: * @param ip 实例IP ./java-sdk/src/main/java/org/onap/msb/sdk/discovery/MSBService.java:207: * @param port 实例端口 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/builder/impl/ClientRetrofitObjectBuilder.java:90: // 目前支持http ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/annotaion/ServiceHttpEndPoint.java:22: * 服务名和版本号不同,接口名就需要不同 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/annotaion/ServiceHttpEndPoint.java:31: // 在MSB上注册的服务名 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/annotaion/ServiceHttpEndPoint.java:34: // 在MSB注册的版本号 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/annotaion/ServiceHttpEndPoint.java:37: // 在通过msb转发时,所用的协议 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/annotaion/ServiceHttpEndPoint.java:40: // 服务间点对点访问时,所用的协议 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/annotaion/ServiceHttpEndPoint.java:43: // 服务所在的租户名 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/annotaion/ServiceHttpEndPoint.java:46: // 服务的可见范围,系统间:“0”,系统内:“1”(默认),可配置多个,以 | 分隔 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/annotaion/ServiceHttpEndPoint.java:49: // 在MSB上注册的服务类型 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/handler/impl/ServiceHttpEndPointBeanObjectBuilder.java:42: // 从注解上构建 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/lb/LoadBalanceContext.java:27: // 从msb上查询到的全部endPoint信息 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/lb/ILoadBalanceStrategy.java:19: * 每个实际的策略对象在运行中会保持单例 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/ProxyRetrofitCall.java:66: // 清理残留的endpoint记录 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/ServiceHttpEndPointBeanObject.java:18: // 在MSB上注册的服务名 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/ServiceHttpEndPointBeanObject.java:20: // 在MSB注册的版本号 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/ServiceHttpEndPointBeanObject.java:22: // 在通过msb转发时,所用的协议 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/ServiceHttpEndPointBeanObject.java:25: // 服务间点对点访问时,所用的协议 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/ServiceHttpEndPointBeanObject.java:28: // 服务所在的租户名 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/ServiceHttpEndPointBeanObject.java:31: // 服务的可见范围,系统间:“0”,系统内:“1”(默认),可配置多个,以 | 分隔 ./java-sdk/src/main/java/org/onap/msb/sdk/httpclient/ServiceHttpEndPointBeanObject.java:34: // 在MSB上注册的服务类型