Commit 54ee46e1ff0a8505ee15720f1567ee0923eb9bc4
1 parent
7767c2ce
add 官网首页地图 驾车路线规划 实时路况检测
Showing
3 changed files
with
911 additions
and
61 deletions
public/index.html
| ... | ... | @@ -5,8 +5,13 @@ |
| 5 | 5 | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| 6 | 6 | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
| 7 | 7 | <link rel="icon" href="<%= BASE_URL %>favicon.ico"> |
| 8 | + <!-- 引入百度地图交通路况样式文件 --> | |
| 9 | + <link href="http://api.map.baidu.com/library/TrafficControl/1.4/src/TrafficControl_min.css" rel="stylesheet" type="text/css"/> | |
| 8 | 10 | <title><%= webpackConfig.name %></title> |
| 9 | 11 | <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=cuMSxNl5LOY6sf1M3nDGtG6tGXl5a0Bb"></script> |
| 12 | + <!-- 引入百度地图交通路况文件 --> | |
| 13 | + <script type="text/javascript" src="http://api.map.baidu.com/library/TrafficControl/1.4/src/TrafficControl_min.js"></script> | |
| 14 | + | |
| 10 | 15 | </head> |
| 11 | 16 | <body> |
| 12 | 17 | <noscript> | ... | ... |
src/views/home.vue
| ... | ... | @@ -7,6 +7,22 @@ |
| 7 | 7 | <div class="berth"> |
| 8 | 8 | <h1 class="title">泊位分布</h1> |
| 9 | 9 | <div class="map" id="map"></div> |
| 10 | + <!--路线规划--> | |
| 11 | + <div class="routebox"> | |
| 12 | + <div class="searchbox-content-common routebox-content"> | |
| 13 | + <div class="routebox-inputs"> | |
| 14 | + <div class="routebox-input route-start"> | |
| 15 | + <div class="route-input-icon"></div> | |
| 16 | + <input autocomplete="off" id="startAddress" maxlength="256" placeholder="输入起点" class="route-start-input" type="text" value=""> | |
| 17 | + </div> | |
| 18 | + <div class="routebox-input route-end"> | |
| 19 | + <div class="route-input-icon"></div> | |
| 20 | + <input autocomplete="off" id="endAddress" maxlength="256" placeholder="输入终点" class="route-end-input" type="text" value=""> | |
| 21 | + </div> | |
| 22 | + </div> | |
| 23 | + </div> | |
| 24 | + </div> | |
| 25 | + <button id="search-button" data-title="搜索" @click='searchByStationName1()'></button> | |
| 10 | 26 | <div class="berth-num"> |
| 11 | 27 | <p>区域泊位规划</p> |
| 12 | 28 | <ul class="berth-list"> |
| ... | ... | @@ -19,7 +35,7 @@ |
| 19 | 35 | </div> |
| 20 | 36 | </div> |
| 21 | 37 | <div class="news-wrap"> |
| 22 | - <h1 class="title">新闻/公告中心</h1> | |
| 38 | + <h1 class="title">新闻公告中心</h1> | |
| 23 | 39 | <div class="fl news-bg"></div> |
| 24 | 40 | <ul class="fl news-con"> |
| 25 | 41 | <li class="clearfix" v-for="(news,id) in newsList" :key="id" @click="showNews(news.noticeId)"> |
| ... | ... | @@ -47,6 +63,7 @@ |
| 47 | 63 | </template> |
| 48 | 64 | |
| 49 | 65 | <script> |
| 66 | + var map; | |
| 50 | 67 | import {queryParkLotInfoByOrgId,queryNoticeForPage,queryNotice} from '@/api/park'; |
| 51 | 68 | import pagination from '@/components/Pagination/index.vue' |
| 52 | 69 | import {string2Date} from '@/filters/index'; |
| ... | ... | @@ -69,8 +86,13 @@ |
| 69 | 86 | pageSize: 7, |
| 70 | 87 | pageSizeS: [8, 16], |
| 71 | 88 | pageTotal: 0, |
| 89 | + from: null, | |
| 90 | + to: null, | |
| 91 | + address_detail: null, //详细地址 | |
| 92 | + userlocation: {lng: "", lat: ""}, | |
| 72 | 93 | //新闻详情 |
| 73 | 94 | newscontent:'', |
| 95 | + | |
| 74 | 96 | } |
| 75 | 97 | }, |
| 76 | 98 | computed: { |
| ... | ... | @@ -135,36 +157,104 @@ |
| 135 | 157 | baiduMap(mapDatas) { |
| 136 | 158 | if (mapDatas.length === 0) { |
| 137 | 159 | // 百度地图API功能 |
| 138 | - let map = new BMap.Map("map", {enableMapClick: false}); | |
| 160 | + map = new BMap.Map("map", {enableMapClick: false}); | |
| 139 | 161 | let point = new BMap.Point(115.078186, 30.232887); |
| 140 | 162 | map.centerAndZoom(point, 15); |
| 141 | 163 | map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 |
| 142 | - let top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺 | |
| 164 | + // let top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺 | |
| 143 | 165 | let top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件 |
| 144 | 166 | let top_right_navigation = new BMap.NavigationControl({ |
| 145 | 167 | anchor: BMAP_ANCHOR_TOP_RIGHT, |
| 146 | 168 | type: BMAP_NAVIGATION_CONTROL_SMALL |
| 147 | 169 | }); //右上角,仅包含平移和缩放按钮 |
| 148 | - map.addControl(top_left_control); | |
| 170 | + // map.addControl(top_left_control); | |
| 149 | 171 | map.addControl(top_left_navigation); |
| 150 | - map.addControl(top_right_navigation); | |
| 172 | + // map.addControl(top_right_navigation); | |
| 173 | + const ctrl = new BMapLib.TrafficControl({ | |
| 174 | + showPanel: true , // 是否显示路况提示面板 | |
| 175 | + }); | |
| 176 | + map.addControl(ctrl); | |
| 177 | + ctrl.showTraffic({ predictDate: { hour: 15, weekday: 5 } }); | |
| 178 | + ctrl.setAnchor(BMAP_ANCHOR_TOP_LEFT); | |
| 179 | + ctrl.setOffset(new BMap.Size(85, 27)); | |
| 180 | + var localSearch = new BMap.LocalSearch(map); | |
| 181 | + localSearch.enableAutoViewport(); //允许自动调节窗体大小 | |
| 151 | 182 | map.clearOverlays(); |
| 152 | 183 | } |
| 153 | 184 | else { |
| 185 | + var th = this; | |
| 154 | 186 | // 百度地图API功能 |
| 155 | - let map = new BMap.Map("map", {enableMapClick: false}); | |
| 187 | + map = new BMap.Map("map", {enableMapClick: false}); | |
| 156 | 188 | let point = new BMap.Point(mapDatas[0].lonId, mapDatas[0].latId); |
| 157 | 189 | map.centerAndZoom(point, 18); |
| 158 | 190 | map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 |
| 159 | - let top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺 | |
| 191 | + // let top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺 | |
| 160 | 192 | let top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件 |
| 161 | 193 | let top_right_navigation = new BMap.NavigationControl({ |
| 162 | 194 | anchor: BMAP_ANCHOR_TOP_RIGHT, |
| 163 | 195 | type: BMAP_NAVIGATION_CONTROL_SMALL |
| 164 | 196 | }); //右上角,仅包含平移和缩放按钮 |
| 165 | - map.addControl(top_left_control); | |
| 197 | + // map.addControl(top_left_control); | |
| 166 | 198 | map.addControl(top_left_navigation); |
| 167 | - map.addControl(top_right_navigation); | |
| 199 | + const ctrl = new BMapLib.TrafficControl({ | |
| 200 | + showPanel: true , // 是否显示路况提示面板 | |
| 201 | + }); | |
| 202 | + map.addControl(ctrl); | |
| 203 | + ctrl.showTraffic({ predictDate: { hour: 15, weekday: 5 } }); | |
| 204 | + ctrl.setAnchor(BMAP_ANCHOR_TOP_LEFT); | |
| 205 | + ctrl.setOffset(new BMap.Size(85, 27)); | |
| 206 | + var localSearch = new BMap.LocalSearch(map); | |
| 207 | + localSearch.enableAutoViewport(); //允许自动调节窗体大小 | |
| 208 | + //起点自动搜索功能 | |
| 209 | + var ac1 = new BMap.Autocomplete( //建立一个自动完成的对象 | |
| 210 | + { | |
| 211 | + "input": "startAddress","location": map | |
| 212 | + }) | |
| 213 | + var myValue; | |
| 214 | + ac1.addEventListener("onconfirm", function (e) { //鼠标点击下拉列表后的事件 | |
| 215 | + var _value = e.item.value; | |
| 216 | + myValue = _value.province + _value.city + _value.district + _value.street + _value.business; | |
| 217 | + this.address_detail = myValue | |
| 218 | + setPlace(); | |
| 219 | + }); | |
| 220 | + function setPlace() { | |
| 221 | + map.clearOverlays(); //清除地图上所有覆盖物 | |
| 222 | + function myFun() { | |
| 223 | + th.userlocation = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果 | |
| 224 | + map.centerAndZoom(th.userlocation, 18); | |
| 225 | + map.addOverlay(new BMap.Marker(th.userlocation)); //添加标注 | |
| 226 | + } | |
| 227 | + | |
| 228 | + var local = new BMap.LocalSearch(map, { //智能搜索 | |
| 229 | + onSearchComplete: myFun | |
| 230 | + }); | |
| 231 | + local.search(myValue); | |
| 232 | + }; | |
| 233 | + //终点自动搜索功能 | |
| 234 | + var ac2 = new BMap.Autocomplete( //建立一个自动完成的对象 | |
| 235 | + { | |
| 236 | + "input": "endAddress","location": map | |
| 237 | + }) | |
| 238 | + var myValue1; | |
| 239 | + ac2.addEventListener("onconfirm", function (e) { //鼠标点击下拉列表后的事件 | |
| 240 | + var _value = e.item.value; | |
| 241 | + myValue1 = _value.province + _value.city + _value.district + _value.street + _value.business; | |
| 242 | + this.address_detail = myValue1 | |
| 243 | + setPlace1(); | |
| 244 | + }); | |
| 245 | + function setPlace1() { | |
| 246 | + map.clearOverlays(); //清除地图上所有覆盖物 | |
| 247 | + function myFun1() { | |
| 248 | + th.userlocation = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果 | |
| 249 | + map.centerAndZoom(th.userlocation, 18); | |
| 250 | + map.addOverlay(new BMap.Marker(th.userlocation)); //添加标注 | |
| 251 | + } | |
| 252 | + | |
| 253 | + var local = new BMap.LocalSearch(map, { //智能搜索 | |
| 254 | + onSearchComplete: myFun1 | |
| 255 | + }); | |
| 256 | + local.search(myValue); | |
| 257 | + } | |
| 168 | 258 | map.clearOverlays(); |
| 169 | 259 | let i = 0; |
| 170 | 260 | let points = []; |
| ... | ... | @@ -226,6 +316,68 @@ |
| 226 | 316 | } |
| 227 | 317 | } |
| 228 | 318 | }, |
| 319 | + searchByStationName1: function () { | |
| 320 | + var _this = this; | |
| 321 | + var startAddrr = document.getElementById("startAddress").value;//获得起点地名 | |
| 322 | + var localSearch = new BMap.LocalSearch(map); | |
| 323 | + localSearch.setSearchCompleteCallback(function (searchResult) { | |
| 324 | + var poi = searchResult.getPoi(0);//获得起点经纬度坐标 | |
| 325 | + if (poi != null) { //判断地名是否存在 | |
| 326 | + console.log('from poi', poi); | |
| 327 | + _this.from = poi.point; | |
| 328 | + console.log('from', _this.from); | |
| 329 | + _this.searchByStationName2(); | |
| 330 | + } | |
| 331 | + else{ | |
| 332 | + alert("请输入正确的地名!") | |
| 333 | + } | |
| 334 | + }); | |
| 335 | + localSearch.search(startAddrr); | |
| 336 | + }, | |
| 337 | + searchByStationName2: function () { | |
| 338 | + var _this = this; | |
| 339 | + var endAddrr = document.getElementById("endAddress").value; //获得目的地地名 | |
| 340 | + var localSearch = new BMap.LocalSearch(map); | |
| 341 | + localSearch.setSearchCompleteCallback(function (searchResult) { | |
| 342 | + var poi = searchResult.getPoi(0); //获得目的地经纬度坐标 | |
| 343 | + if (poi != null) { //判断目的地是否存在 | |
| 344 | + _this.to = poi.point; | |
| 345 | + _this.run(); | |
| 346 | + } | |
| 347 | + else{ | |
| 348 | + alert("请输入正确的地名!") | |
| 349 | + } | |
| 350 | + | |
| 351 | + }); | |
| 352 | + localSearch.search(endAddrr); | |
| 353 | + }, | |
| 354 | + run: function () { | |
| 355 | + map.clearOverlays() // 清除地图上所有的覆盖物 | |
| 356 | + var driving = new BMap.DrivingRoute(map) // 创建驾车实例 | |
| 357 | + driving.search(this.from, this.to) // 搜索 | |
| 358 | + let that = this; | |
| 359 | + driving.setSearchCompleteCallback(function () { | |
| 360 | + console.log('completeCallback start!'); | |
| 361 | + var pts = driving.getResults().getPlan(0).getRoute(0).getPath() // 通过步行实例,获得一系列点的数组 | |
| 362 | + | |
| 363 | + var polyline = new BMap.Polyline(pts); | |
| 364 | + map.addOverlay(polyline); | |
| 365 | + console.log('pollyline!', polyline); | |
| 366 | + var m1 = new BMap.Marker(that.from); // 创建2个marker | |
| 367 | + var m2 = new BMap.Marker(that.to); | |
| 368 | + map.addOverlay(m1) | |
| 369 | + map.addOverlay(m2) | |
| 370 | + | |
| 371 | + var lab1 = new BMap.Label('起点', {position: that.from}) // 创建2个label | |
| 372 | + var lab2 = new BMap.Label('终点', {position: that.to}) | |
| 373 | + map.addOverlay(lab1) | |
| 374 | + map.addOverlay(lab2) | |
| 375 | + console.log('setTimeout!'); | |
| 376 | + setTimeout(function () { | |
| 377 | + map.setViewport([that.from, that.to]) // 调整到最佳视野 | |
| 378 | + }, 1000) | |
| 379 | + }) | |
| 380 | + }, | |
| 229 | 381 | //新闻中心 |
| 230 | 382 | getNoticeForPage(){ |
| 231 | 383 | let req={ |
| ... | ... | @@ -303,8 +455,8 @@ |
| 303 | 455 | width: 323px; |
| 304 | 456 | height: 368px; |
| 305 | 457 | position: absolute; |
| 306 | - top: 200px; | |
| 307 | - right: 80px; | |
| 458 | + bottom: 70px; | |
| 459 | + left: 8px; | |
| 308 | 460 | background: url("../assets/home/berth.png") no-repeat; |
| 309 | 461 | p { |
| 310 | 462 | padding-top: 20px; |
| ... | ... | @@ -376,61 +528,86 @@ |
| 376 | 528 | text-align: justify; |
| 377 | 529 | } |
| 378 | 530 | } |
| 379 | -/* | |
| 380 | - .date { | |
| 381 | - width: 83px; | |
| 382 | - height: 83px; | |
| 383 | - margin-right: 20px; | |
| 384 | - background: #FF5656; | |
| 531 | + #tcWrap .maplibTcColor{ | |
| 532 | + height: 15px; | |
| 533 | + } | |
| 534 | + /*路线规划*/ | |
| 535 | + .routebox { | |
| 536 | + -webkit-transition: max-height 1s ease-in; | |
| 537 | + transition: max-height 1s ease-in; | |
| 538 | + overflow: hidden; | |
| 539 | + position: absolute; | |
| 540 | + top: 160px; | |
| 541 | + right: 87px; | |
| 542 | + width: 289px; | |
| 543 | + height: 80px; | |
| 544 | + } | |
| 545 | + .routebox .routebox-content { | |
| 546 | + height: auto!important; | |
| 385 | 547 | position: relative; |
| 386 | - h3 { | |
| 387 | - padding-top: 15px; | |
| 388 | - font-size: 32px; | |
| 389 | - color: rgba(255, 255, 255, 1); | |
| 390 | - } | |
| 391 | - h5 { | |
| 392 | - font-size: 12px; | |
| 393 | - text-align: right; | |
| 394 | - padding-right: 10px; | |
| 395 | - color: #Fff; | |
| 396 | - } | |
| 397 | - &:before { | |
| 398 | - content: ''; | |
| 399 | - position: absolute; | |
| 400 | - right: 14px; | |
| 401 | - bottom: 36px; | |
| 402 | - transform: rotate(-45deg); | |
| 403 | - width: 25px; | |
| 404 | - height: 1px; | |
| 405 | - background: rgba(255, 255, 255, 1) | |
| 406 | - } | |
| 407 | 548 | } |
| 408 | - | |
| 409 | - .des h3 { | |
| 410 | - padding-bottom: 15px; | |
| 411 | - font-size: 20px; | |
| 412 | - color: #0D1A26; | |
| 413 | - cursor: pointer; | |
| 549 | + .searchbox-content .searchbox-content-common { | |
| 550 | + box-sizing: border-box; | |
| 551 | + float: left; | |
| 552 | + width: 329px; | |
| 553 | + height: 38px; | |
| 414 | 554 | } |
| 415 | - | |
| 416 | - .des p { | |
| 417 | - width: 430px; | |
| 418 | - line-height: 22px; | |
| 419 | - color: #314659; | |
| 420 | - }*/ | |
| 421 | - | |
| 422 | - /*.index_cont .dislog-wrap { | |
| 423 | - height: 30px; | |
| 424 | - line-height: 30px; | |
| 555 | + .routebox .routebox-content .routebox-input { | |
| 556 | + height: 40px; | |
| 557 | + width: 289px; | |
| 558 | + border-bottom: 1px solid #eaebed; | |
| 559 | + position: relative; | |
| 560 | + } | |
| 561 | + .routebox .routebox-content .routebox-input .route-input-icon { | |
| 562 | + width: 11px; | |
| 563 | + height: 10px; | |
| 564 | + background: url(//webmap1.bdimg.com/wolfman/static/common/images/new/start_ee17f81.png) no-repeat 0 0; | |
| 565 | + position: absolute; | |
| 566 | + top: 15px; | |
| 567 | + left: 3px; | |
| 568 | + } | |
| 569 | + .routebox .routebox-content .routebox-input input { | |
| 570 | + box-sizing: border-box; | |
| 571 | + border: 0; | |
| 572 | + height: 100%; | |
| 425 | 573 | width: 100%; |
| 426 | - padding: 0 4px; | |
| 427 | - border-radius: 4px; | |
| 428 | - background-color: #3a8ee6; | |
| 429 | - color: #fff; | |
| 574 | + padding: 10px 0; | |
| 430 | 575 | font-size: 14px; |
| 431 | - text-align: center; | |
| 432 | - white-space: nowrap; | |
| 433 | - }*/ | |
| 576 | + border-left: 20px solid transparent; | |
| 577 | + border-right: 27px solid transparent; | |
| 578 | + line-height: 20px; | |
| 579 | + outline: 0; | |
| 580 | + font-family: inherit; | |
| 581 | + } | |
| 582 | + .routebox .routebox-content .routebox-input { | |
| 583 | + height: 40px; | |
| 584 | + width: 289px; | |
| 585 | + border-bottom: 1px solid #eaebed; | |
| 586 | + position: relative; | |
| 587 | + } | |
| 588 | + .routebox .routebox-content .routebox-input:last-child { | |
| 589 | + border-bottom: 0; | |
| 590 | + } | |
| 591 | + .routebox .routebox-content .routebox-input.route-end .route-input-icon { | |
| 592 | + background: url(//webmap0.bdimg.com/wolfman/static/common/images/new/end_e68ad9a.png) no-repeat 0 0; | |
| 593 | + } | |
| 594 | + #search-button { | |
| 595 | + pointer-events: auto; | |
| 596 | + background: url(//webmap1.bdimg.com/wolfman/static/common/images/new/searchbox_5c0d97d.png) no-repeat 0 -76px #3385ff; | |
| 597 | + width: 57px; | |
| 598 | + height: 38px; | |
| 599 | + float: left; | |
| 600 | + border: 0; | |
| 601 | + padding: 0; | |
| 602 | + cursor: pointer; | |
| 603 | + border-radius: 0 2px 2px 0; | |
| 604 | + box-shadow: 1px 2px 1px rgba(0,0,0,.15); | |
| 605 | + outline: 0; | |
| 606 | + font-family: inherit; | |
| 607 | + position: absolute; | |
| 608 | + top: 160px; | |
| 609 | + right: 30px; | |
| 610 | + } | |
| 434 | 611 | /*新闻内容 样式*/ |
| 435 | 612 | .news_cont h1 { |
| 436 | 613 | font-size: 36px !important; | ... | ... |
static/traffuccontrol.js
0 → 100644
| 1 | +var BMapLib = window.BMapLib = BMapLib || {}; | |
| 2 | +(function () { | |
| 3 | + var c, a = c = a || { | |
| 4 | + version: "1.3.9" | |
| 5 | + }; | |
| 6 | + a.guid = "$BAIDU$"; | |
| 7 | + (function () { | |
| 8 | + a.dom = a.dom || {}; | |
| 9 | + a.event = a.event || {}; | |
| 10 | + a.lang = a.lang || {}; | |
| 11 | + a.browser = a.browser || {}; | |
| 12 | + a.dom.addClass = function (p, q) { | |
| 13 | + p = a.dom.g(p); | |
| 14 | + var k = q.split(/\s+/), | |
| 15 | + j = p.className, | |
| 16 | + o = " " + j + " ", | |
| 17 | + n = 0, | |
| 18 | + m = k.length; | |
| 19 | + for (; n < m; n++) { | |
| 20 | + if (o.indexOf(" " + k[n] + " ") < 0) { | |
| 21 | + j += (j ? " " : "") + k[n] | |
| 22 | + } | |
| 23 | + } | |
| 24 | + p.className = j; | |
| 25 | + return p | |
| 26 | + }; | |
| 27 | + a.addClass = a.dom.addClass; | |
| 28 | + a.dom.removeClass = function (p, q) { | |
| 29 | + p = a.dom.g(p); | |
| 30 | + var n = p.className.split(/\s+/), | |
| 31 | + r = q.split(/\s+/), | |
| 32 | + l, k = r.length, | |
| 33 | + m, o = 0; | |
| 34 | + for (; o < k; ++o) { | |
| 35 | + for (m = 0, l = n.length; m < l; ++m) { | |
| 36 | + if (n[m] == r[o]) { | |
| 37 | + n.splice(m, 1); | |
| 38 | + break | |
| 39 | + } | |
| 40 | + } | |
| 41 | + } | |
| 42 | + p.className = n.join(" "); | |
| 43 | + return p | |
| 44 | + }; | |
| 45 | + a.removeClass = a.dom.removeClass; | |
| 46 | + a.dom.getComputedStyle = function (k, j) { | |
| 47 | + k = a.dom._g(k); | |
| 48 | + var m = a.dom.getDocument(k), | |
| 49 | + l; | |
| 50 | + if (m.defaultView && m.defaultView.getComputedStyle) { | |
| 51 | + l = m.defaultView.getComputedStyle(k, null); | |
| 52 | + if (l) { | |
| 53 | + return l[j] || l.getPropertyValue(j) | |
| 54 | + } | |
| 55 | + } | |
| 56 | + return "" | |
| 57 | + }; | |
| 58 | + a.dom.getStyle = function (k, j) { | |
| 59 | + var m = a.dom; | |
| 60 | + k = m.g(k); | |
| 61 | + var l = k.style[j] || (k.currentStyle ? k.currentStyle[j] : "") || m.getComputedStyle(k, j); | |
| 62 | + return l | |
| 63 | + }; | |
| 64 | + a.getStyle = a.dom.getStyle; | |
| 65 | + a.dom.getDocument = function (j) { | |
| 66 | + j = a.dom.g(j); | |
| 67 | + return j.nodeType == 9 ? j : j.ownerDocument || j.document | |
| 68 | + }; | |
| 69 | + a.dom.g = function (j) { | |
| 70 | + if ("string" == typeof j || j instanceof String) { | |
| 71 | + return document.getElementById(j) | |
| 72 | + } else { | |
| 73 | + if (j && j.nodeName && (j.nodeType == 1 || j.nodeType == 9)) { | |
| 74 | + return j | |
| 75 | + } | |
| 76 | + } | |
| 77 | + return null | |
| 78 | + }; | |
| 79 | + a.g = a.G = a.dom.g; | |
| 80 | + a.dom._g = function (j) { | |
| 81 | + if (a.lang.isString(j)) { | |
| 82 | + return document.getElementById(j) | |
| 83 | + } | |
| 84 | + return j | |
| 85 | + }; | |
| 86 | + a._g = a.dom._g; | |
| 87 | + a.lang.isString = function (j) { | |
| 88 | + return "[object String]" == Object.prototype.toString.call(j) | |
| 89 | + }; | |
| 90 | + a.isString = a.lang.isString; | |
| 91 | + a.event._listeners = a.event._listeners || []; | |
| 92 | + a.event.on = function (k, n, p) { | |
| 93 | + n = n.replace(/^on/i, ""); | |
| 94 | + k = a.dom._g(k); | |
| 95 | + var o = function (r) { | |
| 96 | + p.call(k, r) | |
| 97 | + }, | |
| 98 | + j = a.event._listeners, | |
| 99 | + m = a.event._eventFilter, | |
| 100 | + q, l = n; | |
| 101 | + n = n.toLowerCase(); | |
| 102 | + if (m && m[n]) { | |
| 103 | + q = m[n](k, n, o); | |
| 104 | + l = q.type; | |
| 105 | + o = q.listener | |
| 106 | + } | |
| 107 | + if (k.addEventListener) { | |
| 108 | + k.addEventListener(l, o, false) | |
| 109 | + } else { | |
| 110 | + if (k.attachEvent) { | |
| 111 | + k.attachEvent("on" + l, o) | |
| 112 | + } | |
| 113 | + } | |
| 114 | + j[j.length] = [k, n, p, o, l]; | |
| 115 | + return k | |
| 116 | + }; | |
| 117 | + a.on = a.event.on; | |
| 118 | + a.event.un = function (l, o, k) { | |
| 119 | + l = a.dom._g(l); | |
| 120 | + o = o.replace(/^on/i, "").toLowerCase(); | |
| 121 | + var r = a.event._listeners, | |
| 122 | + m = r.length, | |
| 123 | + n = !k, | |
| 124 | + q, p, j; | |
| 125 | + while (m--) { | |
| 126 | + q = r[m]; | |
| 127 | + if (q[1] === o && q[0] === l && (n || q[2] === k)) { | |
| 128 | + p = q[4]; | |
| 129 | + j = q[3]; | |
| 130 | + if (l.removeEventListener) { | |
| 131 | + l.removeEventListener(p, j, false) | |
| 132 | + } else { | |
| 133 | + if (l.detachEvent) { | |
| 134 | + l.detachEvent("on" + p, j) | |
| 135 | + } | |
| 136 | + } | |
| 137 | + r.splice(m, 1) | |
| 138 | + } | |
| 139 | + } | |
| 140 | + return l | |
| 141 | + }; | |
| 142 | + a.un = a.event.un; | |
| 143 | + if (/msie (\d+\.\d)/i.test(navigator.userAgent)) { | |
| 144 | + a.browser.ie = a.ie = document.documentMode || +RegExp["\x241"] | |
| 145 | + } | |
| 146 | + a.platform = a.platform || {}; | |
| 147 | + a.platform.isIphone = /iphone/i.test(navigator.userAgent); | |
| 148 | + a.platform.isAndroid = /android/i.test(navigator.userAgent); | |
| 149 | + a.platform.isIpad = /ipad/i.test(navigator.userAgent); | |
| 150 | + a.isMobile = function () { | |
| 151 | + return !!(a.platform.isIphone || a.platform.isIpad || a.platform.isAndroid) | |
| 152 | + } | |
| 153 | + })(); | |
| 154 | + var h = a.isMobile() ? "_mobile" : "_deskTop"; | |
| 155 | + var g = BMapLib.TrafficControl = function (j) { | |
| 156 | + this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT; | |
| 157 | + this.defaultOffset = new BMap.Size(10, 10); | |
| 158 | + this.showPanel = j && j.showPanel | |
| 159 | + }; | |
| 160 | + g.prototype = new BMap.Control(); | |
| 161 | + g.prototype.initialize = function (l) { | |
| 162 | + var j = d("div", { | |
| 163 | + title: "显示交通流量", | |
| 164 | + id: "tcBtn", | |
| 165 | + "class": "maplibTcBtn" + h + " maplibTcBtnOff" + h | |
| 166 | + }); | |
| 167 | + l.getContainer().appendChild(j); | |
| 168 | + this._map = l; | |
| 169 | + this._popUpDiv(this, j); | |
| 170 | + var k = this; | |
| 171 | + this.btn = j; | |
| 172 | + return j | |
| 173 | + }; | |
| 174 | + g.prototype._popUpDiv = function (F, w) { | |
| 175 | + var F = this; | |
| 176 | + var x = ["查看实时路况", "流量预测"]; | |
| 177 | + var l = ["查看流量预测", "实时路况"]; | |
| 178 | + var A = true; | |
| 179 | + this.bShow = false; | |
| 180 | + var D = this; | |
| 181 | + D._bind = false; | |
| 182 | + b(w, "afterEnd", u()); | |
| 183 | + b(w, "afterEnd", H()); | |
| 184 | + var B = a.g("tcViewPrediction"); | |
| 185 | + var t = a.g("tcPredition"); | |
| 186 | + var G = a.g("tcTitle"); | |
| 187 | + var n = a.g("maplibTcDay"); | |
| 188 | + var y = a.g("tcNow"); | |
| 189 | + var p = a.g("tcWrap"); | |
| 190 | + var v = a.g("tcTimeBox"); | |
| 191 | + var z = a.g("tcUpdate"); | |
| 192 | + var j = ["一", "二", "三", "四", "五", "六", "日"]; | |
| 193 | + var s = new E(F); | |
| 194 | + this.show = function () { | |
| 195 | + k(); | |
| 196 | + F.bShow = true; | |
| 197 | + a.dom.removeClass(w, "maplibTcBtnOff" + h) | |
| 198 | + }; | |
| 199 | + this.hide = function () { | |
| 200 | + F.bShow = false; | |
| 201 | + a.dom.addClass(w, "maplibTcBtnOff" + h); | |
| 202 | + if (a.isMobile()) { | |
| 203 | + a.dom.addClass("tcWrap_mobile", "maplibTfctrHide") | |
| 204 | + } else { | |
| 205 | + a.dom.addClass("tcWrap", "maplibTcHide"); | |
| 206 | + a.dom.addClass("tcPredition", "maplibTcHide") | |
| 207 | + } | |
| 208 | + F.hideTraffic() | |
| 209 | + }; | |
| 210 | + this.isbShow = function () { | |
| 211 | + return F.bShow | |
| 212 | + }; | |
| 213 | + this.setPopOffset = function (J) { | |
| 214 | + var L = 24; | |
| 215 | + var K = J.height + L + "px"; | |
| 216 | + var I = J.width + "px"; | |
| 217 | + switch (F.getAnchor()) { | |
| 218 | + case BMAP_ANCHOR_TOP_LEFT: | |
| 219 | + p.style.top = K; | |
| 220 | + p.style.left = I; | |
| 221 | + break; | |
| 222 | + case BMAP_ANCHOR_TOP_RIGHT: | |
| 223 | + p.style.top = K; | |
| 224 | + p.style.right = I; | |
| 225 | + break; | |
| 226 | + case BMAP_ANCHOR_BOTTOM_RIGHT: | |
| 227 | + p.style.bottom = K; | |
| 228 | + p.style.right = I; | |
| 229 | + break; | |
| 230 | + case BMAP_ANCHOR_BOTTOM_LEFT: | |
| 231 | + p.style.bottom = K; | |
| 232 | + p.style.left = I; | |
| 233 | + break | |
| 234 | + } | |
| 235 | + }; | |
| 236 | + var r = a.isMobile() ? "ontouchend" : "onclick"; | |
| 237 | + a.event.on(w, r, function () { | |
| 238 | + o() | |
| 239 | + }); | |
| 240 | + a.event.on("tcClose", "click", function (I) { | |
| 241 | + o() | |
| 242 | + }); | |
| 243 | + | |
| 244 | + function o() { | |
| 245 | + if (!D.isbShow()) { | |
| 246 | + D.setPopOffset(F.getOffset()); | |
| 247 | + D.show() | |
| 248 | + } else { | |
| 249 | + D.hide() | |
| 250 | + } | |
| 251 | + } | |
| 252 | + | |
| 253 | + function k() { | |
| 254 | + n.innerHTML = "更新时间"; | |
| 255 | + G.innerHTML = l[1]; | |
| 256 | + B.innerHTML = l[0]; | |
| 257 | + a.dom.addClass(t, "maplibTcHide"); | |
| 258 | + z.style.display = "block"; | |
| 259 | + A = true; | |
| 260 | + if (a.isMobile()) { | |
| 261 | + if (F.showPanel) { | |
| 262 | + a.dom.removeClass("tcWrap_mobile", "maplibTfctrHide") | |
| 263 | + } | |
| 264 | + } else { | |
| 265 | + a.dom.removeClass("tcWrap", "maplibTcHide") | |
| 266 | + } | |
| 267 | + var K = a.g("tcWeek").getElementsByTagName("a"); | |
| 268 | + for (var J = 0; J < 7; J++) { | |
| 269 | + K[J].className = "" | |
| 270 | + } | |
| 271 | + var I = | |
| 272 | + "http://its.map.baidu.com:8002/traffic/GetCurrentTime?callback=BMapLib.TrafficControl.getTime&"; | |
| 273 | + e(I + (new Date()).getTime(), L); | |
| 274 | + if (F.timer) { | |
| 275 | + clearInterval(F.timer) | |
| 276 | + } | |
| 277 | + F.timer = setInterval(function () { | |
| 278 | + e(I + (new Date()).getTime(), function () { | |
| 279 | + if (F.bShow) { | |
| 280 | + var N = g.curTime; | |
| 281 | + var M = N.getHours(); | |
| 282 | + var O = (M < 10 ? ("0" + M) : M) + ":" + (N.getMinutes() < 10 ? ("0" + | |
| 283 | + N.getMinutes()) : N.getMinutes()); | |
| 284 | + y.innerHTML = O; | |
| 285 | + F.hideTraffic(); | |
| 286 | + F.showTraffic() | |
| 287 | + } | |
| 288 | + }) | |
| 289 | + }, 1000 * 3 * 60); | |
| 290 | + | |
| 291 | + function L() { | |
| 292 | + var N = g.curTime; | |
| 293 | + var M = N.getHours(); | |
| 294 | + if (!D._bind) { | |
| 295 | + C(F); | |
| 296 | + m(F); | |
| 297 | + D._bind = true | |
| 298 | + } | |
| 299 | + var O = (M < 10 ? ("0" + M) : M) + ":" + (N.getMinutes() < 10 ? ("0" + N.getMinutes()) : N.getMinutes()); | |
| 300 | + y.innerHTML = O; | |
| 301 | + F.hour = M; | |
| 302 | + F.weekday = N.getDay() == 0 ? 7 : N.getDay(); | |
| 303 | + F.time = O; | |
| 304 | + s.setBarTime(M) | |
| 305 | + } | |
| 306 | + } | |
| 307 | + | |
| 308 | + function H() { | |
| 309 | + return '<div class="maplibTfctr maplibTfctrHide" id="tcWrap_mobile" style="position: absolute; z-index: 10; -webkit-text-size-adjust: none; bottom: 17px; right: auto; top: auto; left:50%;margin-left:-4.5em;"><div class="maplibTfctr_l"></div><div class="maplibTfctr_c">实时路况</div><div class="maplibTfctr_status"><span class="maplibR">堵</span><span class="maplibY">缓</span><span class="maplibG">畅</span></div></div>' | |
| 310 | + } | |
| 311 | + | |
| 312 | + function u() { | |
| 313 | + var I = ['<div class="maplibTc maplibTcHide" id="tcWrap">']; | |
| 314 | + I.push('<div class="maplibTcColor" id="tcTitle">实时路况</div>'); | |
| 315 | + I.push('<div id="tcRealTime">'); | |
| 316 | + I.push( | |
| 317 | + '<div class="maplibTcTime"><span id="maplibTcDay" class="maplibTcCurTime">更新时间</span><span><span class="maplibTcColon">: </span><span class="maplibTcCurTime" id="tcNow"></span><span title="更新" id="tcUpdate" class="maplibTcUpdate"></span> <a href="javascript:void(0)" class="maplibTcView" id="tcViewPrediction">查看流量预测</a><button class="maplibTcClose" id="tcClose"></button></div></div>' | |
| 318 | + ); | |
| 319 | + I.push('<div id="tcPredition" class="maplibTcHide">'); | |
| 320 | + I.push( | |
| 321 | + '<div class="maplibTcWeekDay"><span>星期</span><ul id="tcWeek"><li><a lang="1" href="javascript:void(0)">一</a></li><li><a lang="2" href="javascript:void(0)">二</a></li><li><a lang="3" href="javascript:void(0)">三</a></li><li><a lang="4" href="javascript:void(0)">四</a></li><li><a lang="5" href="javascript:void(0)">五</a></li><li><a lang="6" href="javascript:void(0)">六</a></li><li><a lang="7" href="javascript:void(0)">日</a></li></ul></div>' | |
| 322 | + ); | |
| 323 | + I.push('<div><div class="maplibTcRuleTxt">时间</div>'); | |
| 324 | + I.push('<div class="maplibTcRule">'); | |
| 325 | + I.push('<div><div class="maplibTcTimeBox" id="tcTimeBox">20:00</div></div>'); | |
| 326 | + I.push('<div class="maplibTcTimeline" >'); | |
| 327 | + I.push('<div class="maplibTcTimelinePrev" id="tcPrev"></div>'); | |
| 328 | + I.push('<div class="maplibTcTimeMove" id="tcMove"></div>'); | |
| 329 | + I.push('<div class="maplibTcTimelineNext" id="tcNext"></div>'); | |
| 330 | + I.push("</div></div></div>"); | |
| 331 | + I.push( | |
| 332 | + '<div class="maplibTcClear" style="text-align: center; color: #ccc;">(基于历史流量统计预测 仅供参考)</div>' | |
| 333 | + ); | |
| 334 | + I.push("</div></div></div>"); | |
| 335 | + return I.join("") | |
| 336 | + } | |
| 337 | + | |
| 338 | + function C(J) { | |
| 339 | + a.event.on("tcViewPrediction", "click", function () { | |
| 340 | + if (A) { | |
| 341 | + I() | |
| 342 | + } else { | |
| 343 | + k() | |
| 344 | + } | |
| 345 | + }); | |
| 346 | + | |
| 347 | + function I() { | |
| 348 | + if (J.timer) { | |
| 349 | + clearInterval(J.timer) | |
| 350 | + } | |
| 351 | + G.innerHTML = x[1]; | |
| 352 | + B.innerHTML = x[0]; | |
| 353 | + a.dom.removeClass(t, "maplibTcHide"); | |
| 354 | + z.style.display = "none"; | |
| 355 | + A = false; | |
| 356 | + n.innerHTML = "星期" + j[J.weekday - 1]; | |
| 357 | + y.innerHTML = v.innerHTML; | |
| 358 | + J.showTraffic({ | |
| 359 | + predictDate: { | |
| 360 | + hour: J.hour, | |
| 361 | + weekday: J.weekday | |
| 362 | + } | |
| 363 | + }) | |
| 364 | + } | |
| 365 | + a.event.on("tcUpdate", "click", function () { | |
| 366 | + k() | |
| 367 | + }) | |
| 368 | + } | |
| 369 | + | |
| 370 | + function q() { | |
| 371 | + n.innerHTML = "星期" + j[F.weekday - 1]; | |
| 372 | + y.innerHTML = v.innerHTML | |
| 373 | + } | |
| 374 | + | |
| 375 | + function m(I) { | |
| 376 | + a.event.on("tcWeek", "onclick", function (L) { | |
| 377 | + var K = L.target || L.srcElement; | |
| 378 | + if (K.tagName.toLowerCase() == "a") { | |
| 379 | + var M = a.g("tcWeek").getElementsByTagName("a"); | |
| 380 | + for (var J = 0; J < 7; J++) { | |
| 381 | + M[J].className = "" | |
| 382 | + } | |
| 383 | + a.dom.addClass(K, "maplibTcOn"); | |
| 384 | + I.weekday = (parseInt(f(K, "lang"), 10)); | |
| 385 | + q(); | |
| 386 | + I.showTraffic({ | |
| 387 | + predictDate: { | |
| 388 | + hour: I.hour, | |
| 389 | + weekday: I.weekday | |
| 390 | + } | |
| 391 | + }) | |
| 392 | + } | |
| 393 | + }) | |
| 394 | + } | |
| 395 | + | |
| 396 | + function E(M) { | |
| 397 | + var J; | |
| 398 | + var O = a.g("tcMove"); | |
| 399 | + | |
| 400 | + function N(R) { | |
| 401 | + a.on(document, "onmousemove", Q); | |
| 402 | + a.on(document, "onmouseup", I); | |
| 403 | + if (R && R.preventDefault) { | |
| 404 | + R.preventDefault() | |
| 405 | + } else { | |
| 406 | + window.event.returnValue = false | |
| 407 | + } | |
| 408 | + return false | |
| 409 | + } | |
| 410 | + | |
| 411 | + function Q(U) { | |
| 412 | + var R = U.clientX || U.x; | |
| 413 | + var T = i(a.G("tcPrev")).left + 9; | |
| 414 | + var S = R - T - 4; | |
| 415 | + if (S < 0) { | |
| 416 | + S = 0 | |
| 417 | + } | |
| 418 | + if (S > 165) { | |
| 419 | + S = 165 | |
| 420 | + } | |
| 421 | + if (a.browser.ie <= 6) { | |
| 422 | + O.style.marginLeft = (S * 0.53) + "px" | |
| 423 | + } else { | |
| 424 | + O.style.marginLeft = S + "px" | |
| 425 | + } | |
| 426 | + v.style.marginLeft = (S) + "px"; | |
| 427 | + L() | |
| 428 | + } | |
| 429 | + | |
| 430 | + function I() { | |
| 431 | + a.un(document, "onmousemove", Q); | |
| 432 | + a.un(document, "onmouseup", I); | |
| 433 | + M.showTraffic({ | |
| 434 | + predictDate: { | |
| 435 | + hour: M.hour, | |
| 436 | + weekday: M.weekday | |
| 437 | + } | |
| 438 | + }) | |
| 439 | + } | |
| 440 | + a.on(O, "onmousedown", N); | |
| 441 | + a.on("tcPrev", "click", function () { | |
| 442 | + P("prev") | |
| 443 | + }); | |
| 444 | + a.on("tcNext", "click", function () { | |
| 445 | + P("next") | |
| 446 | + }); | |
| 447 | + | |
| 448 | + function P(R) { | |
| 449 | + var S = v; | |
| 450 | + var T = parseInt(a.dom.getStyle("tcTimeBox", "marginLeft")); | |
| 451 | + var U = Math.ceil((T - 4) * 24 / 165); | |
| 452 | + K(R == "next" ? (U + 1) : (U - 1)) | |
| 453 | + } | |
| 454 | + this.setBarTime = function (R) { | |
| 455 | + K(R) | |
| 456 | + }; | |
| 457 | + | |
| 458 | + function K(T) { | |
| 459 | + if (T < 0) { | |
| 460 | + T = 0 | |
| 461 | + } | |
| 462 | + if (T > 24) { | |
| 463 | + T = 24 | |
| 464 | + } | |
| 465 | + J = T; | |
| 466 | + var S = T * (165 / 24); | |
| 467 | + v.style.marginLeft = S + "px"; | |
| 468 | + var R = a.g("tcMove"); | |
| 469 | + if (a.browser.ie <= 6 && a.browser.ie > 0) { | |
| 470 | + R.style.marginLeft = (S * 0.53) + "px" | |
| 471 | + } else { | |
| 472 | + R.style.marginLeft = S + "px" | |
| 473 | + } | |
| 474 | + M.hour = J; | |
| 475 | + if (A) { | |
| 476 | + M.showTraffic() | |
| 477 | + } else { | |
| 478 | + M.showTraffic({ | |
| 479 | + predictDate: { | |
| 480 | + hour: M.hour, | |
| 481 | + weekday: M.weekday | |
| 482 | + } | |
| 483 | + }) | |
| 484 | + } | |
| 485 | + L() | |
| 486 | + } | |
| 487 | + | |
| 488 | + function L() { | |
| 489 | + var R = parseInt(v.style.marginLeft); | |
| 490 | + var S = Math.ceil((R - 4) * 24 / 165); | |
| 491 | + J = S; | |
| 492 | + M.hour = S; | |
| 493 | + if (S < 10) { | |
| 494 | + S = "0" + S | |
| 495 | + } | |
| 496 | + if (A) { | |
| 497 | + y.innerHTML = M.time; | |
| 498 | + v.innerHTML = S + ":00" | |
| 499 | + } else { | |
| 500 | + y.innerHTML = v.innerHTML = S + ":00" | |
| 501 | + } | |
| 502 | + } | |
| 503 | + } | |
| 504 | + }; | |
| 505 | + g.prototype.showTraffic = function (j) { | |
| 506 | + var k; | |
| 507 | + if (this._trafficLayer) { | |
| 508 | + this._map.removeTileLayer(this._trafficLayer) | |
| 509 | + } | |
| 510 | + if (j) { | |
| 511 | + if (j.predictDate.weekday > 7 || j.predictDate.weekday < 1) { | |
| 512 | + return | |
| 513 | + } | |
| 514 | + k = new BMap.TrafficLayer(j) | |
| 515 | + } else { | |
| 516 | + k = new BMap.TrafficLayer() | |
| 517 | + } | |
| 518 | + this.bShow = true; | |
| 519 | + if (a.isMobile()) { | |
| 520 | + a.dom.removeClass(this.btn, "maplibTcBtnOff" + h) | |
| 521 | + } | |
| 522 | + this._map.addTileLayer(k); | |
| 523 | + this._trafficLayer = k | |
| 524 | + }; | |
| 525 | + g.prototype.hideTraffic = function () { | |
| 526 | + this.bShow = false; | |
| 527 | + if (this._trafficLayer) { | |
| 528 | + this._map.removeTileLayer(this._trafficLayer); | |
| 529 | + this._trafficLayer = null | |
| 530 | + } | |
| 531 | + if (a.isMobile()) { | |
| 532 | + a.dom.addClass(this.btn, "maplibTcBtnOff" + h) | |
| 533 | + } | |
| 534 | + }; | |
| 535 | + g.prototype.remove = function () { | |
| 536 | + this.hideTraffic(); | |
| 537 | + var j = a.g("tcWrap"); | |
| 538 | + j.parentNode.removeChild(j); | |
| 539 | + BMap.Control.prototype.remove.call(this); | |
| 540 | + if (this.timer) { | |
| 541 | + clearInterval(this.timer) | |
| 542 | + } | |
| 543 | + }; | |
| 544 | + | |
| 545 | + function f(k, j, l) { | |
| 546 | + if (!j || j.constructor != String) { | |
| 547 | + return "" | |
| 548 | + } | |
| 549 | + j = { | |
| 550 | + "for": "htmlFor", | |
| 551 | + "class": "className" | |
| 552 | + } [j] || j; | |
| 553 | + if (typeof l != "undefined") { | |
| 554 | + k[j] = l; | |
| 555 | + if (k.setAttribute) { | |
| 556 | + k.setAttribute(j, l) | |
| 557 | + } | |
| 558 | + } | |
| 559 | + return k[j] || k.getAttribute(j) || "" | |
| 560 | + } | |
| 561 | + | |
| 562 | + function d(l, k) { | |
| 563 | + var n = document.createElement(l); | |
| 564 | + k = k || {}; | |
| 565 | + for (var m in k) { | |
| 566 | + value = k[m]; | |
| 567 | + m = j()[m] || m; | |
| 568 | + if (m == "style") { | |
| 569 | + n.style.cssText = value; | |
| 570 | + continue | |
| 571 | + } | |
| 572 | + if (n.setAttribute) { | |
| 573 | + n.setAttribute(m, value) | |
| 574 | + } else { | |
| 575 | + try { | |
| 576 | + n[m] = value | |
| 577 | + } catch (n) {} | |
| 578 | + } | |
| 579 | + } | |
| 580 | + return n; | |
| 581 | + | |
| 582 | + function j() { | |
| 583 | + var o = { | |
| 584 | + cellpadding: "cellPadding", | |
| 585 | + cellspacing: "cellSpacing", | |
| 586 | + colspan: "colSpan", | |
| 587 | + rowspan: "rowSpan", | |
| 588 | + valign: "vAlign" | |
| 589 | + }; | |
| 590 | + if (a.browser.ie < 8) { | |
| 591 | + o["for"] = "htmlFor"; | |
| 592 | + o["class"] = "className" | |
| 593 | + } else { | |
| 594 | + o.htmlFor = "for"; | |
| 595 | + o.className = "class" | |
| 596 | + } | |
| 597 | + return o | |
| 598 | + } | |
| 599 | + } | |
| 600 | + | |
| 601 | + function i(j) { | |
| 602 | + var k = { | |
| 603 | + left: 0, | |
| 604 | + top: 0 | |
| 605 | + }; | |
| 606 | + while (j && j.offsetParent) { | |
| 607 | + k.left += j.offsetLeft; | |
| 608 | + k.top += j.offsetTop; | |
| 609 | + j = j.offsetParent | |
| 610 | + } | |
| 611 | + return k | |
| 612 | + } | |
| 613 | + | |
| 614 | + function b(m, j, l) { | |
| 615 | + var k, n; | |
| 616 | + if (m.insertAdjacentHTML) { | |
| 617 | + m.insertAdjacentHTML(j, l) | |
| 618 | + } else { | |
| 619 | + k = m.ownerDocument.createRange(); | |
| 620 | + j = j.toUpperCase(); | |
| 621 | + if (j == "AFTERBEGIN" || j == "BEFOREEND") { | |
| 622 | + k.selectNodeContents(m); | |
| 623 | + k.collapse(j == "AFTERBEGIN") | |
| 624 | + } else { | |
| 625 | + n = j == "BEFOREBEGIN"; | |
| 626 | + k[n ? "setStartBefore" : "setEndAfter"](m); | |
| 627 | + k.collapse(n) | |
| 628 | + } | |
| 629 | + k.insertNode(k.createContextualFragment(l)) | |
| 630 | + } | |
| 631 | + return m | |
| 632 | + } | |
| 633 | + | |
| 634 | + function e(k, l) { | |
| 635 | + var j = document.createElement("script"); | |
| 636 | + j.setAttribute("src", k); | |
| 637 | + j.setAttribute("type", "text/javascript"); | |
| 638 | + j.setAttribute("charset", "gbk"); | |
| 639 | + if (j.addEventListener) { | |
| 640 | + j.addEventListener("load", function (n) { | |
| 641 | + var m = n.target; | |
| 642 | + m.parentNode.removeChild(m); | |
| 643 | + if (l) { | |
| 644 | + l() | |
| 645 | + } | |
| 646 | + }, false) | |
| 647 | + } else { | |
| 648 | + if (j.attachEvent) { | |
| 649 | + j.attachEvent("onreadystatechange", function (n) { | |
| 650 | + var m = window.event.srcElement; | |
| 651 | + if (m && (m.readyState == "loaded" || m.readyState == "complete")) { | |
| 652 | + m.parentNode.removeChild(m); | |
| 653 | + if (l) { | |
| 654 | + l() | |
| 655 | + } | |
| 656 | + } | |
| 657 | + }) | |
| 658 | + } | |
| 659 | + } | |
| 660 | + setTimeout(function () { | |
| 661 | + document.getElementsByTagName("head")[0].appendChild(j); | |
| 662 | + j = null | |
| 663 | + }, 1) | |
| 664 | + } | |
| 665 | + g.getTime = function (j) { | |
| 666 | + this.curTime = isNaN(j) ? new Date() : new Date(j) | |
| 667 | + } | |
| 668 | +})(); | ... | ... |