map_list.html 4.88 KB
<!DOCTYPE html>
<html>
  <head>
      <meta charset="utf-8">
      <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
      <title>地图列表</title>
      <link rel="stylesheet" type="text/css" href="../../css/api.css"/>
      <link rel="stylesheet" type="text/css" href="../../css/aui.css"/>
      <link rel="stylesheet" type="text/css" href="../../css/style.css"/>
      <style>
          html,
          body{
            background: #FFFFFF;
          }
      </style>
  </head>
  <body>
    <div id="app">
      <div class="address-list">
        <div class="address-inside-list" id="address_inside_list" v-for="(list_d, list_i) in listData">
          <div class="list-panel" tapmode @click="chooseAddress(list_d.address, list_i, list_d.lat, list_d.lon, list_d.extra_lat, list_d.extra_lon);">
            <div class="aui-row aui-row-flex padding-top-14-5">
              <div class="aui-col aui-col-span-21 aui-row-flex-start">
                <div class="location-name">{{ list_d.name }}</div>
                <div class="location-detail">{{ list_d.address }}</div>
              </div>
              <div class="aui-col aui-col-span-3 aui-row-flex-end">
                <img src="../../image/device_selected.png" class="img-selected choose-area aui-hide"/>
              </div>
            </div>
            <div class="panel-line margin-top-14"></div>
          </div>
          <!-- <div class="list-panel" tapmode onclick="chooseAddress(1,'苏州国际科技园五期创意产业园6栋');">
            <div class="aui-row aui-row-flex padding-top-14-5">
              <div class="aui-col aui-col-span-21 aui-row-flex-start">
                <div class="location-name">苏州国际科</div>
                <div class="location-detail">苏州国际科技园五期创意产业园6栋</div>
              </div>
              <div class="aui-col aui-col-span-3 aui-row-flex-end">
                <img src="../../image/device_selected.png" class="img-selected choose-area aui-hide"/>
              </div>
            </div>
            <div class="panel-line margin-top-14"></div>
          </div> -->
        </div>
      </div>
    </div>
  </body>
  <script type="text/javascript" src="../../script/api.js"></script>
  <script type="text/javascript" src="../../script/jquery-3.3.1.min.js"></script>
  <script type="text/javascript" src="../../script/vue.min.js"></script>
  <script type="text/javascript" src="../../script/common.js"></script>
  <script type="text/javascript" src="../../script/element.js"></script>
  <script type="text/javascript" src="../../script/ctrl.js"></script>
  <script type="text/javascript">
      var vm,
          mapList,
          search;
      apiready = function(){
        api.parseTapmode();

        api.addEventListener({
            name: 'updateMapList'
        }, function(ret, err){
            if( ret ){
              if (ret.value.mapList.length>0) {
                console.log('-----');
                mapList = ret.value.mapList;
                search = ret.value.search;
                handleAddHtml();
              }
            }
        });        

        //---------初始化vue
        vm = new Vue({
          el: '#app',
          data: {
            selected_address: {},
            listData: [],
          },
          created() {
          },
          mounted() {
            window.handleAddHtml = this.handleAddHtml;
          },          
          methods: {
            handleAddHtml() {
              if (mapList.length === 0) return;
              
              mapList.filter(item =>{
                if (search) {
                  item.extra_lat = item.lat
                  item.extra_lon = item.lon
                }else {
                  item.extra_lat = item.coord.lat
                  item.extra_lon = item.coord.lon
                }
              })
              this.listData = mapList
              
              

            },
            chooseAddress(address, squence, lat, lon, e_lat, e_lon) {
              // console.log(address);地址
              var chooseDoms = $api.domAll('.choose-area');
              for (var j = 0; j < chooseDoms.length; j++) {
                if (j === squence) {
                  $api.removeCls(chooseDoms[j], 'aui-hide');
                }else {
                  $api.addCls(chooseDoms[j], 'aui-hide');
                }
              }
              this.selected_address.address = address;
              this.selected_address.lat = lat;
              this.selected_address.lon = lon;
              this.selected_address.extra_lat = e_lat
              this.selected_address.extra_lon = e_lon
              api.sendEvent({
                  name: 'selected_device_location',
                  extra: {
                    address: this.selected_address
                  }
              });

            }            
          }
        })
      };
  </script>
  </html>