// Vue鑷畾涔夋寚浠�

// dialog鍙互鎷栨潵鎷栧幓
const directive = Vue => {
  Vue.directive('drag2anywhere', {
  // 褰撹缁戝畾鐨勫厓绱犳彃鍏ュ埌 DOM 涓椂鈥︹€�
    inserted: (el) => {
      el.style.overflow = 'hidden';
      const target = el.childNodes[0];
      const targetHeader = target.childNodes[0];
      let isOnclick = false;
      let mouseX;
      let mouseY;
      let objX;
      let objY;
      targetHeader.onmousedown = (event) => {
        isOnclick = true;
        target.style.cursor = 'move';
        target.style.left = target.offsetLeft + 'px'; // 鍏堣褰曚箣鍓嶇殑浣嶇疆
        target.style.top = target.offsetTop + 'px'; // 鍏堣褰曚箣鍓嶇殑浣嶇疆
        target.style.margin = '0'; // 鍘绘帀margin
        mouseX = event.clientX;
        mouseY = event.clientY;
        objX = parseInt(target.style.left || target.offsetLeft);
        objY = parseInt(target.style.top || target.offsetTop);
        document.onmousemove = null; // 瑙g粦鐩戝惉榧犳爣鎷栧姩浜嬩欢
        document.onmousemove = (event) => { // 鐩戝惉榧犳爣鎷栧姩浜嬩欢
          if (isOnclick) {
            event = event || window.event;
            target.style.left = parseInt(event.clientX - mouseX + objX) + 'px';
            target.style.top = parseInt(event.clientY - mouseY + objY) + 'px';
          }
        };
      };
      targetHeader.onmouseup = (event) => { // 鏉惧紑榧犳爣
          isOnclick = false;
          target.style.cursor = 'default';
      };
    }
  });
};
export default directive;