From 1ed87c6ea9f4d4c367e7a661fdab1b2e178c9332 Mon Sep 17 00:00:00 2001 From: zhanglipeng Date: Sun, 7 Mar 2021 20:55:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B0=B4=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/main.js | 3 +- ruoyi-ui/src/utils/watermark.js | 56 +++++++++++++++++++ .../views/benyi_train/video_study/index.vue | 7 ++- 3 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 ruoyi-ui/src/utils/watermark.js diff --git a/ruoyi-ui/src/main.js b/ruoyi-ui/src/main.js index 32e6f19cf..7919d755e 100644 --- a/ruoyi-ui/src/main.js +++ b/ruoyi-ui/src/main.js @@ -29,6 +29,7 @@ import 'vue-video-player/src/custom-theme.css'; import Print from '@/utils/print' import PrintECharts from '@/utils/print_echarts' import { preventReClick } from '@/utils/plugins'; +import watermark from '@/utils/watermark'; //路径不要写错 // 全局方法挂载 Vue.prototype.getDicts = getDicts Vue.prototype.getConfigKey = getConfigKey @@ -44,7 +45,7 @@ Vue.prototype.$video = Video Vue.use(VideoPlayer); Vue.use(Print); Vue.use(PrintECharts); - +Vue.prototype.$watermark = watermark import LunarFullCalendar from "vue-lunar-full-calendar"; Vue.use(LunarFullCalendar); diff --git a/ruoyi-ui/src/utils/watermark.js b/ruoyi-ui/src/utils/watermark.js new file mode 100644 index 000000000..81d632271 --- /dev/null +++ b/ruoyi-ui/src/utils/watermark.js @@ -0,0 +1,56 @@ +let watermark = {} + +let setWatermark = (str) => { + let id = '1.23452384164.123412416'; + + if (document.getElementById(id) !== null) { + document.body.removeChild(document.getElementById(id)); + } + + //创建一个画布 + let can = document.createElement('canvas'); + //设置画布的长宽 + can.width = 120; + can.height = 120; + + let cans = can.getContext('2d'); + //旋转角度 + cans.rotate(-15 * Math.PI / 180); + cans.font = '18px Vedana'; + //设置填充绘画的颜色、渐变或者模式 + cans.fillStyle = 'rgba(200, 200, 200, 0.40)'; + //设置文本内容的当前对齐方式 + cans.textAlign = 'left'; + //设置在绘制文本时使用的当前文本基线 + cans.textBaseline = 'Middle'; + //在画布上绘制填色的文本(输出的文本,开始绘制文本的X坐标位置,开始绘制文本的Y坐标位置) + cans.fillText(str, can.width / 8, can.height / 2); + + let div = document.createElement('div'); + div.id = id; + div.style.pointerEvents = 'none'; + div.style.top = '30px'; + 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; +} + +// 该方法只允许调用一次 +watermark.set = (str) => { + let id = setWatermark(str); + setInterval(() => { + if (document.getElementById(id) === null) { + id = setWatermark(str); + } + }, 500); + window.onresize = () => { + setWatermark(str); + }; +} + +export default watermark; diff --git a/ruoyi-ui/src/views/benyi_train/video_study/index.vue b/ruoyi-ui/src/views/benyi_train/video_study/index.vue index d0200f65d..528dd2662 100644 --- a/ruoyi-ui/src/views/benyi_train/video_study/index.vue +++ b/ruoyi-ui/src/views/benyi_train/video_study/index.vue @@ -68,7 +68,7 @@ ref="videoPlayer" >
- +