index.js 1006 B

123456789101112131415161718192021222324252627282930
  1. /**
  2. * v-waterMarker可接收参数,均为非必填
  3. * { text: 'vue-admin-box', font: '16px Microsoft JhengHei', textColor: '#000' }
  4. */
  5. const directive = {
  6. mounted(el, binding) {
  7. binding.value ? binding.value : binding.value = {}
  8. addWaterMarker(binding.value.text, el, binding.value.font, binding.value.textColor, )
  9. },
  10. }
  11. function addWaterMarker(str, parentNode, font, textColor) {
  12. // 水印文字,父元素,字体,文字颜色
  13. var can = document.createElement('canvas')
  14. parentNode.appendChild(can)
  15. can.width = 200
  16. can.height = 150
  17. can.style.display = 'none'
  18. var cans = can.getContext('2d')
  19. cans.rotate((-20 * Math.PI) / 180)
  20. cans.font = font || '16px Microsoft JhengHei'
  21. cans.fillStyle = textColor || 'rgba(180, 180, 180, 0.3)'
  22. cans.textAlign = 'left'
  23. cans.textBaseline = 'middle'
  24. cans.fillText(str ||'vue-admin-box' , can.width / 10, can.height / 2)
  25. parentNode.style.backgroundImage = 'url(' + can.toDataURL('image/png') + ')'
  26. }
  27. export default directive