wangzhibo
2021-09-07 89da62649161571834d3f8df7ce36f9967e6ba04
widgets/bookmark/view.js
@@ -1,130 +1,128 @@
'use script' //开发环境建议开启严格模式
"use script"; //开发环境建议开启严格模式
//对应widget.js中MyWidget实例化后的对象
var thisWidget
var $table
var thisWidget;
var $table;
function getHeight() {
  return $(window).height() - 50
  return $(window).height() - 50;
}
//当前页面业务
function initWidgetView(_thisWidget) {
  thisWidget = _thisWidget
  thisWidget = _thisWidget;
  $("#btn_bookmark_Add").bind("click", function () {
    saveBookmark();
  });
  $('#btn_bookmark_Add').bind('click', function () {
    saveBookmark()
  })
  $table = $('#table')
  $table = $("#table");
  $table.bootstrapTable({
    height: getHeight(),
    singleSelect: true, //单选
    pagination: false,
    pageSize: 6,
    iconsPrefix: 'fa',
    iconsPrefix: "fa",
    showHeader: false,
    columns: [
      {
        title: '',
        title: "",
        sortable: true,
        editable: false,
        align: 'center',
        align: "center",
        events: {
          'click .remove': function (e, value, row, index) {
            delBookMark(row.id)
          "click .remove": function (e, value, row, index) {
            delBookMark(row.id);
          },
        },
        formatter: function (value, row, index) {
          return `<div class="bookmarkitem" title="${row.name}">
                      <img src="${row.icon}" style="width:100%;" />
                      <div class="title">
                          ${row.name}
                          <p>${row.name}</p>
                          <a class="remove" href="javascript:void(0)" title="删除"><i class="fa fa-trash"></i></a>
                        </div>
                  </div>`
                  </div>`;
        },
      },
    ],
    onClickRow: function (rowData, $element, field) {
      var location = rowData.data
      thisWidget.showExtent(location)
      var location = rowData.data;
      thisWidget.showExtent(location);
    },
  })
  });
  $(window).resize(function () {
    $table.bootstrapTable('refreshOptions', {
    $table.bootstrapTable("refreshOptions", {
      height: getHeight(),
    })
  })
    });
  });
  //读取localStorage
  initBookMarkList()
  initBookMarkList();
}
var storageName = 'mars3d_bookmark'
var arrBookmark = []
var storageName = "mars3d_bookmark";
var arrBookmark = [];
function initBookMarkList() {
  if (window.parent.hasServer) {
    //后台接口
    parent.sendAjax({
      url: 'v1/map/bookmark/list',
      type: 'get',
      dataType: 'json',
      contentType: 'application/x-www-form-urlencoded',
      url: "v1/map/bookmark/list",
      type: "get",
      dataType: "json",
      contentType: "application/x-www-form-urlencoded",
      success: function (result) {
        var arr = []
        var arr = [];
        for (var i = 0; i < result.length; i++) {
          var itme = result[i]
          var itme = result[i];
          if (!itme) {
            continue
            continue;
          }
          arr.push({
            name: itme.name,
            data: JSON.parse(itme.center),
            id: itme.id,
          })
          });
        }
        arrBookmark = arr
        showListData(arrBookmark)
        arrBookmark = arr;
        showListData(arrBookmark);
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert('服务出错:' + XMLHttpRequest.statusText + ',代码 ' + XMLHttpRequest.status)
        alert("服务出错:" + XMLHttpRequest.statusText + ",代码 " + XMLHttpRequest.status);
      },
    })
    });
  } else {
    var lastcookie = haoutil.storage.get(storageName) //读取localStorage值
    if (lastcookie != null) {
      arrBookmark = eval(lastcookie)
    }
    if (arrBookmark == null || arrBookmark.length == 0) {
      arrBookmark = []
    }
    showListData(arrBookmark)
    localforage.getItem(storageName).then((arrBookmark) => {
      if (arrBookmark == null) {
        arrBookmark = [];
      }
      showListData(arrBookmark);
    });
  }
}
//添加
function saveBookmark() {
  if (arrBookmark == null) {
    arrBookmark = []
    arrBookmark = [];
  }
  var name = $.trim($('#txt_bookmark_name').val()).replace("'", '').replace('"', '')
  var name = $.trim($("#txt_bookmark_name").val()).replace("'", "").replace('"', "");
  if (name.length == 0) {
    toastr.warning('请输入名称')
    return
    toastr.warning("请输入名称");
    return;
  }
  for (var index = arrBookmark.length - 1; index >= 0; index--) {
    if (arrBookmark[index].name == name) {
      toastr.info('该名称已存在,请更换!')
      return
      toastr.info("该名称已存在,请更换!");
      return;
    }
  }
  thisWidget.getThisExtent(function (bounds, base64) {
    arrBookmark.insert(
    haoutil.array.insert(
      arrBookmark,
      {
        name: name,
        data: bounds,
@@ -132,67 +130,67 @@
        id: new Date().getTime(),
      },
      0
    )
    );
    if (window.parent.hasServer) {
      //后台保存接口
      parent.sendAjax({
        url: 'v1/map/bookmark/add',
        url: "v1/map/bookmark/add",
        data: JSON.stringify({
          name: name, //名称
          center: JSON.stringify(bounds), //中心
        }),
        type: 'post',
        dataType: 'json',
        contentType: 'application/json',
        type: "post",
        dataType: "json",
        contentType: "application/json",
        success: function (result) {
          $('#txt_bookmark_name').val('')
          initBookMarkList()
          $("#txt_bookmark_name").val("");
          initBookMarkList();
        },
      })
      });
    } else {
      //本地存储
      var lastcookie = JSON.stringify(arrBookmark)
      haoutil.storage.add(storageName, lastcookie)
      $('#txt_bookmark_name').val('')
      initBookMarkList()
      localforage.setItem(storageName, arrBookmark).then((value) => {
        $("#txt_bookmark_name").val("");
        initBookMarkList();
      })
    }
  })
  });
}
function delBookMark(id) {
  if (window.parent.hasServer) {
    //后台 删除
    parent.sendAjax({
      url: 'v1/map/bookmark/' + id,
      type: 'delete',
      dataType: 'json',
      contentType: 'application/json',
      url: "v1/map/bookmark/" + id,
      type: "delete",
      dataType: "json",
      contentType: "application/json",
      success: function (result) {
        for (var index = arrBookmark.length - 1; index >= 0; index--) {
          if (arrBookmark[index].id == id) {
            arrBookmark.splice(index, 1)
            showListData(arrBookmark)
            break
            arrBookmark.splice(index, 1);
            showListData(arrBookmark);
            break;
          }
        }
      },
    })
    });
  } else {
    for (var index = arrBookmark.length - 1; index >= 0; index--) {
      if (arrBookmark[index].id == id) {
        arrBookmark.splice(index, 1)
        var lastcookie = JSON.stringify(arrBookmark)
        haoutil.storage.add(storageName, lastcookie)
        showListData(arrBookmark)
        break
        arrBookmark.splice(index, 1);
        localforage.setItem(storageName, arrBookmark);
        showListData(arrBookmark);
        break;
      }
    }
  }
}
function showListData(arr) {
  var positon = $table.bootstrapTable('getScrollPosition')
  $table.bootstrapTable('load', arr)
  $table.bootstrapTable('scrollTo', positon)
  var positon = $table.bootstrapTable("getScrollPosition");
  $table.bootstrapTable("load", arr);
  $table.bootstrapTable("scrollTo", positon);
}