在utils文件夹中创建 wartermark.ts 文件(位置看自己的组件放那,这都行),内容如下:

 1 "use strict";
2
3 const setWatermark = (str: any) => {
4 const id = "1.23452384164.123412416";
5
6 if (document.getElementById(id) !== null) {
7 document.body.removeChild(document.getElementById(id) as any);
8 }
9
10 //创建一个画布
11 const can = document.createElement("canvas");
12 //设置画布的长宽
13 can.width = 250;
14 can.height = 120;
15
16 const cans: any = can.getContext("2d");
17 //旋转角度
18 cans.rotate((-15 * Math.PI) / 150);
19 cans.font = "18px Vedana";
20 //设置填充绘画的颜色、渐变或者模式
21 cans.fillStyle = "rgba(200, 200, 200, 0.30)";
22 //设置文本内容的当前对齐方式
23 cans.textAlign = "left";
24 //设置在绘制文本时使用的当前文本基线
25 cans.textBaseline = "Middle";
26 //在画布上绘制填色的文本(输出的文本,开始绘制文本的X坐标位置,开始绘制文本的Y坐标位置)
27 cans.fillText(str, can.width / 8, can.height / 2);
28
29 const div = document.createElement("div");
30 div.id = id;
31 div.style.pointerEvents = "none";
32 div.style.top = "35px";
33 div.style.left = "0px";
34 div.style.position = "fixed";
35 div.style.zIndex = "100000";
36 div.style.width = document.documentElement.clientWidth + "px";
37 div.style.height = document.documentElement.clientHeight + "px";
38 div.style.background =
39 "url(" + can.toDataURL("image/png") + ") left top repeat";
40 document.body.appendChild(div);
41 return id;
42 };
43 const watermark = {
44 // 该方法只允许调用一次
45 set: (str: any) => {
46 let id = setWatermark(str);
47 setInterval(() => {
48 if (document.getElementById(id) === null) {
49 id = setWatermark(str);
50 }
51 }, 500);
52 window.onresize = () => {
53 setWatermark(str);
54 };
55 }
56 }
57 export default watermark;

2、在API.vue文件中引用 wartermark.ts 

 1 <script lang="ts">
2 import './assets/styles/base.scss'
3 import { Component, Vue } from 'vue-property-decorator'
4 import { theme, getQueryString } from '@/utils/util'
5 import logoutUrl from '@/utils/api/logoutUrl'
6
7 import Watermark from '@/utils/main/wartermark';
8
9 export default class App extends Vue {
10 mounted () {
11 Watermark.set("水印内容")
12 }
13
14 }
15 </script>

最新vue项目添加水印的更多相关文章

  1. Vue项目开发最新、最全代码规范文档

    Vue项目开发最新.最全代码规范文档 2019年02月21日 10:43:49 yw00yw 阅读数 337   一. 目录结构 |— build 构建脚本目录 |— build.js 生产环境构建( ...

  2. vue-cli快速构建Vue项目

    vue-cli是什么? vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. vue-cli怎么使用? 安装vue-cli之前,需要先装好vue 和 webpack npm i ...

  3. 如何快速把 Vue 项目升级到 webpack3

    由于 webpack3升级后,新增了 Scope Hositing(作用域提升) 功能,据说是对 js的性能提升很大.因此,我们做了一个测试对比,就是 webpack3和 webpack1/2 的性能 ...

  4. cordova+vue 项目打包成Android(apk)应用

    现在使用vue开发的项目越来越多,使用vue开发的移动端打包就成了最大的问题.现在前端打包方案有好多种,但是综合来说,我比较喜欢用cordova来进行Android和ios的打包,配置完成之后,每次只 ...

  5. 搭建vue项目环境

    前言 在开发本项目之前,我对vue,react,angular等框架了解,仅限于知道它们是什么框架,他们的核心是什么,但是并没有实际使用过(angular 1.0版本用过,因为太难用,所以对这类框架都 ...

  6. vue项目中的常见问题

    总结了几个vue项目开发过程中遇到的常见问题,希望大家注意. 注:文末有福利! 一.样式问题 1.vue中使用less 安装less依赖 npm install less less-loader -- ...

  7. 原有vue项目接入typescript

    原有vue项目接入typescript 为什么要接入typescript javascript由于自身的弱类型,使用起来非常灵活. 这也就为大型项目.多人协作开发埋下了很多隐患.如果是自己的私有业务倒 ...

  8. element-ui和npm、webpack、vue-cli搭建Vue项目

    一.element-ui的简单使用 1.安装 1. npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用. npm i element-ui -S 2. CDN ...

  9. rem的在vue项目中使用配置,,浏览器的兼容性之Mate标签

    在vue中配置rem 位置:在APP.vue的script中,在export default之外 (()=>{ let winW = document.documentElement.clien ...

随机推荐

  1. 序列号,IMEI,IMSI,ICCID的含义

    什么是序列号? 序列号是一串标识你手机出生证明以及身材特征的信息,甚至还可用来识别是否为官方翻新机.你可以简单的将这一串数字分割为:aabccdddeef 的形式.拿iPhone 4为例 aa = 工 ...

  2. Jogl2.0 jogamp-all-platforms 在eclipse 中的配置

    我的电脑在win8 64位系统,搞了好久,网上的方法都快试了个遍,官网的试了,都不行,目前成功了,希望可以帮助其他同学. 1.首先去这里http://jogamp.org/deployment/jog ...

  3. C# 转化成 json ,特殊字符的处理

    //1.定义string jsonText0= "{\"beijing\":{\"zkkke\":\"2222\",\" ...

  4. 使用 Promise 实现任务队列发送请求,实现最大请求数目限制

    核心 设置最大请求数量,当前请求数量,待执行队列 调用时,创建一个新任务,然后判断是否达到最大请求数量,若达到则将任务追加到待执行队列,否则,则直接执行该任务.并返回Promise 创建任务时,需要返 ...

  5. 菜鸟电子面单对接技术方案(link)

    一.背景 快递业务日新月异,收发快递是生活中不可缺少的一部分了,特别是做微商的商家,每天发送大量的快递.填写快递单已经成为过去式,快递小哥上门收件的时候,都使用手持的中端设备,再也不用客户填写快递单了 ...

  6. format的实现

    var format = function(s, arg0) { var args = arguments; return s.replace(/\{(\d+)\}/ig, function(a, b ...

  7. 通俗理解线性回归(Linear Regression)

    线性回归, 最简单的机器学习算法, 当你看完这篇文章, 你就会发现, 线性回归是多么的简单. 首先, 什么是线性回归. 简单的说, 就是在坐标系中有很多点, 线性回归的目的就是找到一条线使得这些点都在 ...

  8. 安装python3,配置pycharm

    1.下载最新版python3 首先去python官网下载python3的源码包,网址:https://www.python.org/ 进去之后点击导航栏的Downloads,也可以鼠标放到Downlo ...

  9. [LeetCode]671. 二叉树中第二小的节点(递归)

    题目 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0.如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值. 给出这样的一个二叉树,你需要输出所有 ...

  10. Windows提示80被占用

    情景:使用cmd启动某一服务的时候报错[emerg] 7220#6900: bind() to 0.0.0.0:80 failed (10013: An attempt was made to acc ...