lion 1 year ago
commit a14f0a1a88

@ -1,16 +1,71 @@
<template> <template>
<div id="app"> <div id="app" ref="containerS">
<router-view /> <router-view />
</div> </div>
</template> </template>
<script> <script>
import {
getInfo
} from '@/api/user'
import {
getToken
} from '@/utils/auth'
import Watermark from "@/utils/waterMarker/index.js";
export default { export default {
name: 'App' name: "App",
} data() {
return {
username: "", //
};
},
watch: {
$route(to, from) {
this.$nextTick(function () {
this.loadUser()
});
},
username(to, from) {
Watermark.set(this.username, this.$refs.containerS);
}
},
mounted() {
},
methods: {
loadUser() {
var token = getToken();
console.log(token)
if (token) {
getInfo(token).then(response => {
const {
roles,
name,
avatar
} = response;
this.username = response.name+" "+this.$moment().format("HH:mm:ss");
Watermark.set(this.username, this.$refs.containerS);
}).catch(error => {
})
}
else {
this.username = "";
Watermark.set(this.username, this.$refs.containerS);
}
}
}
, created() {
this.$nextTick(function () {
this.loadUser()
});
}
};
</script> </script>
<style lang="scss"> <style lang="scss">
#app .sidebar-container.has-logo .el-scrollbar{ #app .sidebar-container.has-logo .el-scrollbar {
height: calc(100% - 60px)!important; height: calc(100% - 60px) !important;
} }
</style> </style>

@ -22,7 +22,6 @@ Vue.prototype.$moment = moment;
Vue.prototype.base = base; Vue.prototype.base = base;
import '@/icons' // icon import '@/icons' // icon
import '@/permission' // permission control import '@/permission' // permission control
/** /**
* If you don't want to use mock-server * If you don't want to use mock-server
* you want to use MockJs for mock api * you want to use MockJs for mock api
@ -69,25 +68,25 @@ Vue.directive('loadMore', {
}) })
import LxHeader from "@/components/LxHeader" import LxHeader from "@/components/LxHeader"
Vue.component('lx-header',LxHeader) Vue.component('lx-header', LxHeader)
import XyTable from '@/components/XyTable' import XyTable from '@/components/XyTable'
Vue.component('xy-table',XyTable) Vue.component('xy-table', XyTable)
import XyDialog from '@/components/XyDialog' import XyDialog from '@/components/XyDialog'
Vue.component('xy-dialog',XyDialog) Vue.component('xy-dialog', XyDialog)
import XySelectors from '@/components/XySelectors' import XySelectors from '@/components/XySelectors'
Vue.component('xy-selectors',XySelectors) Vue.component('xy-selectors', XySelectors)
import draggable from 'vuedraggable'; import draggable from 'vuedraggable';
Vue.component('draggable',draggable) Vue.component('draggable', draggable)
import tinymce from '@/components/XyTinymce' import tinymce from '@/components/XyTinymce'
Vue.component('my-tinymce',tinymce) Vue.component('my-tinymce', tinymce)
import myMap from "@/components/XyMap" import myMap from "@/components/XyMap"
Vue.component('my-map',myMap) Vue.component('my-map', myMap)
import afTableColumn from 'af-table-column' import afTableColumn from 'af-table-column'
Vue.component('af-table-column',afTableColumn) Vue.component('af-table-column', afTableColumn)
Vue.prototype.$integrateData = (target,value) => { Vue.prototype.$integrateData = (target, value) => {
for(let i in target){ for (let i in target) {
if(target.hasOwnProperty(i) && value.hasOwnProperty(i)){ if (target.hasOwnProperty(i) && value.hasOwnProperty(i)) {
target[i] = value[i] target[i] = value[i]
} }
} }

@ -1,3 +1,4 @@
import Vue from 'vue' import Vue from 'vue'
import Router from 'vue-router' import Router from 'vue-router'
@ -172,5 +173,5 @@ export function resetRouter() {
const newRouter = createRouter() const newRouter = createRouter()
router.matcher = newRouter.matcher // reset router router.matcher = newRouter.matcher // reset router
} }
export default router export default router

@ -0,0 +1,55 @@
'use strict'
const watermark = {}
const setWatermark = (str, container) => {
const id = '1.23452384164.123412415'
if (container === undefined) {
return
}
// 查看页面上有没有,如果有则删除
if (document.getElementById(id) !== null) {
const childelement = document.getElementById(id)
childelement.parentNode.removeChild(childelement)
}
var containerWidth = container.offsetWidth // 获取父容器宽
var containerHeight = container.offsetHeight // 获取父容器高
container.style.position = 'relative' // 设置布局为相对布局
// 创建canvas元素(先制作一块背景图)
const can = document.createElement('canvas')
can.width = 300 // 设置每一块的宽度
can.height = 300 // 高度
const cans = can.getContext('2d') // 获取canvas画布
cans.rotate(-20 * Math.PI / 180) // 逆时针旋转π/9
cans.font = '20px Vedana' // 设置字体
cans.fillStyle = 'rgba(0, 0, 0, 0.1)' // 设置字体的颜色
cans.textAlign = 'left' // 文本对齐方式
cans.textBaseline = 'Middle' // 文本基线
cans.fillText(str, 0, 4 * can.height / 5) // 绘制文字
// 创建一个div元素
const div = document.createElement('div')
div.id = id // 设置id
div.style.pointerEvents = 'none' // 取消所有事件
div.style.top = '0px'
div.style.left = '0px'
div.style.position = 'absolute'
div.style.zIndex = '100000'
div.style.width = containerWidth + 'px'
div.style.height = containerHeight + 'px'
div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
container.appendChild(div) // 追加到页面
return id
}
// 该方法只允许调用一次
watermark.set = (str, container) => {
let id = setWatermark(str, container)
setInterval(() => {
if (document.getElementById(id) === null) {
id = setWatermark(str, container)
}
}, 500)
// 监听页面大小的变化
window.onresize = () => {
setWatermark(str, container)
}
}
export default watermark
Loading…
Cancel
Save