Vue's global watermark implementation example

Vue's global watermark implementation example

[Requirement] The system pages display watermarks, but the login page does not have a watermark (the login page will not display a watermark when logging out)

1. Create a watermark Js file

/*
 * @Author: Liu Xiaoer* @Date: 2021-07-15 14:43:27
 * @LastEditTime: 2021-07-15 15:00:27
 * @LastEditors: Please set LastEditors
 * @Description: Add watermark * @FilePath: /huashijc_MeetingSys/src/common/warterMark.js
 */
'use strict'
 
let watermark = {}
 
let setWatermark = (str) => {
  let id = '1.23452384164.123412415'
 
  if (document.getElementById(id) !== null) {
    document.body.removeChild(document.getElementById(id))
  }
 
  let can = document.createElement('canvas')
  can.width = 250
  can.height = 120
 
  let cans = can.getContext('2d')
  cans.rotate(-15 * Math.PI / 150)
  cans.font = '20px Vedana'
  cans.fillStyle = 'rgba(200, 200, 200, 0.20)'
  cans.textAlign = 'left'
  cans.textBaseline = 'Middle'
  cans.fillText(str, can.width / 8, can.height / 2)
 
  let div = document.createElement('div')
  div.id = id
  div.style.pointerEvents = 'none'
  div.style.top = '35px'
  div.style.left = '0px'
  div.style.position = 'fixed'
  div.style.zIndex = '100000'
  div.style.width = document.documentElement.clientWidth + 'px'
  div.style.height = document.documentElement.clientHeight + 'px'
  div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
  document.body.appendChild(div)
  return id
}
 
// This method is only allowed to be called oncewatermark.set = (str) => {
  let id = setWatermark(str)
  setInterval(() => {
    if (document.getElementById(id) === null) {
      id = setWatermark(str)
    }
  }, 500)
  window.onresize = () => {
    setWatermark(str)
  }
}

const outWatermark = (id) => {
    if (document.getElementById(id) !== null) {
      const div = document.getElementById(id)
      div.style.display = 'none'
    }
}
watermark.out = () => {
    const str = '1.23452384164.123412415'
    outWatermark(str)
}
 
export default watermark

2. Introduction operation

2.1 Reference in App.vue or other pages

// 1.In the App.vue file, import the file import Watermark from '@/common/watermark';

computed: {
  userName() {
    const name = this.$store.state.user.name
    return (name && name.length > 0) ? name : 'User name not obtained'
  }
},
mounted() {
  Watermark.set(this.userName)
}

// 2. Reference import Watermark from '@/common/watermark' in other pages;

created() {
  Watermark.set('admin')
}

2.2 Reference in the router configuration file

const outWatermark = (id) => {
  if (document.getElementById(id) !== null) {
    const div = document.getElementById(id)
    div.style.display = 'none'
  }
}

router.afterEach((to) => {
 if(to.path == '/'){
  Watermark.out() // Clear watermark }else{
  Watermark.set('Username not obtained') // Set watermark title
 }
});

This is the end of this article about the implementation example of Vue's global watermark. For more relevant Vue global watermark content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • The vue project realizes drawing a watermark in a certain area
  • Vue easily realizes watermark effect
  • Vue uses custom instructions to add watermarks to the bottom of the page
  • Vue integrates PDF.js to implement PDF preview and add watermark steps
  • Vue example code using class to create and clear watermark
  • How to use pictures and picture watermarks with hidden text information in Vue
  • Vue implements page watermark function
  • Vue implements adding watermark effect to the page

<<:  Example analysis of the page splitting principle of MySQL clustered index

>>:  Detailed explanation of linux crm deployment code

Recommend

Common symbols in Unicode

Unicode is a character encoding scheme developed ...

Encapsulate a simplest ErrorBoundary component to handle react exceptions

Preface Starting from React 16, the concept of Er...

Installation method of mysql-8.0.17-winx64 under windows 10

1. Download from the official website and unzip h...

MySQL 8.0.16 Win10 zip version installation and configuration graphic tutorial

This article shares with you the installation and...

How to use Vue+ElementUI Tree

The use of Vue+ElementUI Tree is for your referen...

vue dynamic component

Table of contents 1. Component 2. keep-alive 2.1 ...

JavaScript immediate execution function usage analysis

We know that in general, a function must be calle...

How to use html2canvas to convert HTML code into images

Convert code to image using html2canvas is a very...

Detailed steps for Linux account file control management

In the Linux system, in addition to various accou...

MySQL Oracle and SQL Server paging query example analysis

Recently, I have done a simple study on the data ...

Brief analysis of the introduction and basic usage of Promise

Promise is a new solution for asynchronous progra...

Summary of some small issues about MySQL auto-increment ID

The following questions are all based on the Inno...

Introduction to Linux compression and decompression commands

Table of contents Common compression formats: gz ...