import store from "@/store";
function drag(el, binding) {
  var _that = store;
  let oDiv = el; //当前元素
  let self = this; //上下文
  oDiv.style.position = "absolute";
  oDiv.style.cursor = "all-scroll";
  oDiv.parentNode.style.cursor = "all-scroll";
  oDiv.classList.add("drap-content");
  //禁止选择网页上的文字
  document.onselectstart = function() {
    return false;
  };
  oDiv.onmousedown = function(e) {
    //鼠标按下，计算当前元素距离可视区的距离
    let disX = e.clientX - oDiv.offsetLeft;
    let disY = e.clientY - oDiv.offsetTop;
    //加了个开关，默认值为undefined，当风险分析页面双击改名时，移动失效，改名后移动继续生效
    if (!_that.getters.riskAnalysisSwitch) {
      document.onmousemove = function(e) {
        //通过事件委托，计算移动的距离
        let l = e.clientX - disX;
        let t = e.clientY - disY;
        //移动当前元素
        oDiv.style.left = l + "px";
        oDiv.style.top = t + "px";
      };
      document.onmouseup = function(e) {
        document.onmousemove = null;
        document.onmouseup = null;
      };
      return false;
    }
    //return false不加的话可能导致黏连，就是拖到一个地方时div粘在鼠标上不下来，相当于onmouseup失效
  };
  oDiv.parentNode.ondblclick = function(e) {
    /*if (binding.value && binding.value.isCtrl) {
    } else {
      oDiv.style.left = "0px";
      oDiv.style.top = "0px";
    }*/
  };
  oDiv.onmousewheel = function(e) {
    if (binding.value && binding.value.isCtrl) {
      //按住ctrl键 滚动鼠标滑轮
      if (e.ctrlKey) {
        var zoom = parseInt(oDiv.style.zoom) || 100;
        /* event.wheelDelta 获取滚轮滚动值并将滚动值叠加给缩放比zoom wheelDelta统一为±120，其中正数表示为向上滚动，负数表示向下滚动 */
        zoom += e.wheelDelta / 12;
        // zoom > 200
        //   ? (document.getElementById("enlargeBtn").disabled = true)
        //   : (document.getElementById("enlargeBtn").disabled = false);
        // zoom <= 60
        //   ? (document.getElementById("narrowBtn").disabled = true)
        //   : (document.getElementById("narrowBtn").disabled = false);
        /* 最小范围 和 最大范围 的图片缩放尺度 */
        if (zoom >= 60 && zoom < 200) {
          sessionStorage.setItem("fileNetZoom", zoom);
          oDiv.style.zoom = zoom + "%";
        }
        return false;
      }
    } else {
      console.log("边界图")
      var zoom = parseInt(oDiv.style.zoom) || 100;
      /* event.wheelDelta 获取滚轮滚动值并将滚动值叠加给缩放比zoom wheelDelta统一为±120，其中正数表示为向上滚动，负数表示向下滚动 */
      zoom += e.wheelDelta / 12;
      /* 最小范围 和 最大范围 的图片缩放尺度 */

      if (zoom >= 50 && zoom < 180) {
        oDiv.style.zoom = zoom + "%";
      }
      return false;
    }
  };
}

export default {
  inserted(el, binding) {
    drag(el, binding);
  }
};
