基于element的页面表格添加水印
'use strict'
let watermark = {}
/**
1、str: 水印文字(固定)
2、container:添加水印的容器(固定)
3、height:水印的高度(动态)
4、index:表格的序号(动态,可不传)
5、type:复杂逻辑下的状态值(动态,可不传)
*/
let setWatermark = (str, container, height, index = 0, type) => {
let id = '1.23452384164.123412415' + type + index
let aa = document.getElementsByClassName('el-table__body-wrapper')[index]
let bb = document.getElementsByClassName('el-table__body')[index]
if (container === undefined) {
let id = '1.23452384164.123412415' + type + index
if (document.getElementById(id) !== null) {
aa.removeChild(document.getElementById(id))
}
return false
}
if (document.getElementById(id) !== null) {
aa.removeChild(document.getElementById(id))
}
let can = document.createElement('canvas')
can.width = str.length * 10
can.height = 100
let cans = can.getContext('2d')
cans.rotate(-5 * Math.PI / 180)
cans.font = '15px Vedana'
cans.fillStyle = 'rgba(0, 0, 0, 0.3 )'
cans.textAlign = 'left'
cans.textBaseline = 'Middle'
cans.fillText(str, 0, 4 * can.height / 5)
let div = document.createElement('div')
div.id = id
div.style.pointerEvents = 'none'
div.style.top = '0px'
div.style.left = '0px'
div.style.position = 'absolute'
div.style.zIndex = '100'
div.style.width = bb.offsetWidth ? `${bb.offsetWidth}px` : '100%'
// console.log(height, aa.offsetHeight, 'qqqqqq')
div.style.height = `${height > aa.offsetHeight ? height : aa.offsetHeight}px`
div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
// document.body.appendChild(div)
aa.appendChild(div)
return id
}
// 该方法只允许调用一次
watermark.set = (str, container, height, index, type) => {
let id = setWatermark(str, container, height, index, type)
if (document.getElementById(id) === null) {
id = setWatermark(str, container, height, index, type)
}
}
// 销毁水印
watermark.remove = () => {
let id = '1.23452384164.123412415'
if (document.getElementById(id) !== null) {
document.getElementsByClassName('el-table__body-wrapper')[0].removeChild(document.getElementById(id))
}
}
export default watermark