/** 
 | 
* v-clipboard 文字复制剪贴 
 | 
* Copyright (c) 2021 ruoyi 
 | 
*/ 
 | 
  
 | 
import Clipboard from 'clipboard' 
 | 
export default { 
 | 
  bind(el, binding, vnode) { 
 | 
    switch (binding.arg) { 
 | 
      case 'success': 
 | 
        el._vClipBoard_success = binding.value; 
 | 
        break; 
 | 
      case 'error': 
 | 
        el._vClipBoard_error = binding.value; 
 | 
        break; 
 | 
      default: { 
 | 
        const clipboard = new Clipboard(el, { 
 | 
          text: () => binding.value, 
 | 
          action: () => binding.arg === 'cut' ? 'cut' : 'copy' 
 | 
        }); 
 | 
        clipboard.on('success', e => { 
 | 
          const callback = el._vClipBoard_success; 
 | 
          callback && callback(e); 
 | 
        }); 
 | 
        clipboard.on('error', e => { 
 | 
          const callback = el._vClipBoard_error; 
 | 
          callback && callback(e); 
 | 
        }); 
 | 
        el._vClipBoard = clipboard; 
 | 
      } 
 | 
    } 
 | 
  }, 
 | 
  update(el, binding) { 
 | 
    if (binding.arg === 'success') { 
 | 
      el._vClipBoard_success = binding.value; 
 | 
    } else if (binding.arg === 'error') { 
 | 
      el._vClipBoard_error = binding.value; 
 | 
    } else { 
 | 
      el._vClipBoard.text = function () { return binding.value; }; 
 | 
      el._vClipBoard.action = () => binding.arg === 'cut' ? 'cut' : 'copy'; 
 | 
    } 
 | 
  }, 
 | 
  unbind(el, binding) { 
 | 
    if (!el._vClipboard) return 
 | 
    if (binding.arg === 'success') { 
 | 
      delete el._vClipBoard_success; 
 | 
    } else if (binding.arg === 'error') { 
 | 
      delete el._vClipBoard_error; 
 | 
    } else { 
 | 
      el._vClipBoard.destroy(); 
 | 
      delete el._vClipBoard; 
 | 
    } 
 | 
  } 
 | 
} 
 |