diff --git a/jero-web/src/App.vue b/jero-web/src/App.vue index 742a0eb98..46935bbfd 100644 --- a/jero-web/src/App.vue +++ b/jero-web/src/App.vue @@ -72,6 +72,7 @@ }); }, mounted() { + }, watch:{ }, diff --git a/jero-web/src/assets/watermark.js b/jero-web/src/assets/watermark.js new file mode 100644 index 000000000..38602dd5f --- /dev/null +++ b/jero-web/src/assets/watermark.js @@ -0,0 +1,48 @@ +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 = 190 + can.height = 120 + + let cans = can.getContext('2d') + cans.rotate(-30 * Math.PI / 180) + cans.font = '15px Vedana' + cans.fillStyle = '#f4f4f4' + cans.textAlign = 'left' + cans.textBaseline = 'Middle' + cans.fillText(str, can.width / 20, can.height) + + let div = document.createElement('div') + div.id = id + div.style.pointerEvents = 'none' + div.style.top = '-30px' + div.style.left = '0px' + div.style.position = 'absolute' + div.style.zIndex = '1' + div.style.width = '100%' + div.style.height = '100%' + div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat' + document.getElementsByClassName('main')[0].appendChild(div) + return id +} + +// 该方法只允许调用一次 +watermark.set = (str) => { + let id = setWatermark(str) + setInterval(() => { + if (document.getElementById(id) === null) { + id = setWatermark(str) + } + }, 2000) + window.onresize = () => { + setWatermark(str) + } +} + +export default watermark diff --git a/jero-web/src/components/layouts/TabLayout.vue b/jero-web/src/components/layouts/TabLayout.vue index 363315777..5f8c5d557 100644 --- a/jero-web/src/components/layouts/TabLayout.vue +++ b/jero-web/src/components/layouts/TabLayout.vue @@ -14,7 +14,8 @@ @change="changePage" @tabClick="tabCallBack" @edit="editPage"> - + {{ page.meta.title }} @@ -36,9 +37,10 @@ import Contextmenu from '@/components/menu/Contextmenu' import { mixin, mixinDevice } from '@/utils/mixin.js' import { triggerWindowResizeEvent } from '@/utils/util' + const indexKey = '/dashboard/analysis' import Vue from 'vue' - import { CACHE_INCLUDED_ROUTES } from "@/store/mutation-types" + import { CACHE_INCLUDED_ROUTES } from '@/store/mutation-types' export default { name: 'TabLayout', @@ -59,13 +61,13 @@ { key: '2', icon: 'arrow-right', text: '关闭右侧' }, { key: '3', icon: 'close', text: '关闭其它' } ], - reloadFlag:true + reloadFlag: true } }, /* update_begin author:wuxianquan date:20190828 for: 关闭当前tab页,供子页面调用 ->望菜单能配置外链,直接弹出新页面而不是嵌入iframe #428 */ - provide(){ - return{ - closeCurrent:this.closeCurrent + provide() { + return { + closeCurrent: this.closeCurrent } }, /* update_end author:wuxianquan date:20190828 for: 关闭当前tab页,供子页面调用->望菜单能配置外链,直接弹出新页面而不是嵌入iframe #428 */ @@ -98,6 +100,9 @@ this.activePage = currentRoute.fullPath }, mounted() { + this.$nextTick(() => { + this.$watermark.set('测试水印') + }) }, watch: { '$route': function(newRoute) { @@ -105,17 +110,17 @@ this.activePage = newRoute.fullPath if (!this.multipage) { this.linkList = [newRoute.fullPath] - this.pageList = [Object.assign({},newRoute)] - // update-begin-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 - } else if(indexKey==newRoute.fullPath) { + this.pageList = [Object.assign({}, newRoute)] + // update-begin-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 + } else if (indexKey == newRoute.fullPath) { //首页时 判断是否缓存 没有缓存 刷新之 if (newRoute.meta.keepAlive === false) { this.routeReload() } - // update-end-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 - }else if (this.linkList.indexOf(newRoute.fullPath) < 0) { + // update-end-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 + } else if (this.linkList.indexOf(newRoute.fullPath) < 0) { this.linkList.push(newRoute.fullPath) - this.pageList.push(Object.assign({},newRoute)) + this.pageList.push(Object.assign({}, newRoute)) //// update-begin-author:sunjianlei date:20200103 for: 如果新增的页面配置了缓存路由,那么就强制刷新一遍 #842 // if (newRoute.meta.keepAlive) { // this.routeReload() @@ -124,8 +129,9 @@ } else if (this.linkList.indexOf(newRoute.fullPath) >= 0) { let oldIndex = this.linkList.indexOf(newRoute.fullPath) let oldPositionRoute = this.pageList[oldIndex] - this.pageList.splice(oldIndex, 1, Object.assign({},newRoute,{meta:oldPositionRoute.meta})) + this.pageList.splice(oldIndex, 1, Object.assign({}, newRoute, { meta: oldPositionRoute.meta })) } + this.$watermark.set('测试水印') }, 'activePage': function(key) { let index = this.linkList.lastIndexOf(key) @@ -137,7 +143,7 @@ this.changeTitle(waitRouter.meta.title) }, 'multipage': function(newVal) { - if(this.reloadFlag){ + if (this.reloadFlag) { if (!newVal) { this.linkList = [this.$route.fullPath] this.pageList = [this.$route] @@ -149,7 +155,7 @@ if (this.multipage && this.linkList.indexOf(indexKey) === -1) { this.addIndexToFirst() } - }, + } // update-end-author:sunjianlei date:20191223 for: 修复从单页模式切换回多页模式后首页不居第一位的 BUG }, methods: { @@ -171,7 +177,7 @@ // update-begin-author:sunjianlei date:20200120 for: 动态更改页面标题 changeTitle(title) { - let projectTitle = "Jero-Boot 企业级快速开发平台" + let projectTitle = 'Jero-Boot 企业级快速开发平台' // 首页特殊处理 if (this.$route.path === indexKey) { document.title = projectTitle @@ -187,10 +193,10 @@ tabCallBack() { this.$nextTick(() => { //update-begin-author:taoyan date: 20201211 for:【新版】online报错 JT-100 - setTimeout(()=>{ - //省市区组件里面给window绑定了个resize事件 导致切换页面的时候触发了他的resize,但是切换页面,省市区组件还没被销毁前就触发了该事件,导致控制台报错,加个延迟 - triggerWindowResizeEvent() - },20) + setTimeout(() => { + //省市区组件里面给window绑定了个resize事件 导致切换页面的时候触发了他的resize,但是切换页面,省市区组件还没被销毁前就触发了该事件,导致控制台报错,加个延迟 + triggerWindowResizeEvent() + }, 20) //update-end-author:taoyan date: 20201211 for:【新版】online报错 JT-100 }) }, @@ -206,7 +212,7 @@ this.$message.warning('这是最后一页,不能再关闭了啦') return } - console.log("this.pageList ",this.pageList ); + console.log('this.pageList ', this.pageList) let removeRoute = this.pageList.filter(item => item.fullPath == key) this.pageList = this.pageList.filter(item => item.fullPath !== key) let index = this.linkList.indexOf(key) @@ -219,9 +225,9 @@ let cacheRouterArray = Vue.ls.get(CACHE_INCLUDED_ROUTES) || [] if (removeRoute && removeRoute[0]) { let componentName = removeRoute[0].meta.componentName - console.log("key: ", key); - console.log("componentName: ", componentName); - if(cacheRouterArray.includes(componentName)){ + console.log('key: ', key) + console.log('componentName: ', componentName) + if (cacheRouterArray.includes(componentName)) { cacheRouterArray.splice(cacheRouterArray.findIndex(item => item === componentName), 1) Vue.ls.set(CACHE_INCLUDED_ROUTES, cacheRouterArray) } @@ -265,13 +271,13 @@ } }, /* update_begin author:wuxianquan date:20190828 for: 关闭当前tab页,供子页面调用->望菜单能配置外链,直接弹出新页面而不是嵌入iframe #428 */ - closeCurrent(){ - this.remove(this.activePage); + closeCurrent() { + this.remove(this.activePage) }, /* update_end author:wuxianquan date:20190828 for: 关闭当前tab页,供子页面调用->望菜单能配置外链,直接弹出新页面而不是嵌入iframe #428 */ closeOthers(pageKey) { let index = this.linkList.indexOf(pageKey) - if (pageKey == indexKey || pageKey.indexOf('?ticke=')>=0) { + if (pageKey == indexKey || pageKey.indexOf('?ticke=') >= 0) { this.linkList = this.linkList.slice(index, index + 1) this.pageList = this.pageList.slice(index, index + 1) this.activePage = this.linkList[0] @@ -308,12 +314,12 @@ } }, //update-begin-author:taoyan date:20190430 for:动态路由title显示配置的菜单title而不是其对应路由的title - dynamicRouterShow(key,title){ + dynamicRouterShow(key, title) { let keyIndex = this.linkList.indexOf(key) - if(keyIndex>=0){ + if (keyIndex >= 0) { let currRouter = this.pageList[keyIndex] - let meta = Object.assign({},currRouter.meta,{title:title}) - this.pageList.splice(keyIndex, 1, Object.assign({},currRouter,{meta:meta})) + let meta = Object.assign({}, currRouter.meta, { title: title }) + this.pageList.splice(keyIndex, 1, Object.assign({}, currRouter, { meta: meta })) if (key === this.activePage) { this.changeTitle(title) } @@ -322,20 +328,20 @@ //update-end-author:taoyan date:20190430 for:动态路由title显示配置的菜单title而不是其对应路由的title //update-begin-author:taoyan date:20191008 for:路由刷新 - routeReload(){ + routeReload() { this.reloadFlag = false - let ToggleMultipage = "ToggleMultipage" - this.$store.dispatch(ToggleMultipage,false) - this.$nextTick(()=>{ - this.$store.dispatch(ToggleMultipage,true) + let ToggleMultipage = 'ToggleMultipage' + this.$store.dispatch(ToggleMultipage, false) + this.$nextTick(() => { + this.$store.dispatch(ToggleMultipage, true) this.reloadFlag = true }) }, //update-end-author:taoyan date:20191008 for:路由刷新 //新增一个返回方法 - excuteCallback(callback){ + excuteCallback(callback) { callback() - }, + } } } @@ -417,10 +423,32 @@ border: none !important; border-bottom: 1px solid transparent !important; } + .ant-tabs-tab-active { - border-color: @primary-color!important; + border-color: @primary-color !important; } } + .ant-table-fixed { + background: transparent !important; + } + .main { + position: relative; + background: #fff; + } + + .ant-card { + z-index: 999; + background: transparent !important; + } + .ant-input{ + background: transparent !important; + } + .ant-select-selection{ + background: transparent !important; + } + .ant-table-placeholder{ + background: transparent !important; + } diff --git a/jero-web/src/main.js b/jero-web/src/main.js index 71bcb5d99..cdd100fbe 100644 --- a/jero-web/src/main.js +++ b/jero-web/src/main.js @@ -10,7 +10,8 @@ import $ from 'jquery' import { VueAxios } from "@/utils/request" - +import watermark from '@/assets/watermark.js' +Vue.prototype.$watermark = watermark require('@/components/onlineForm/onlineForm') require('@/components/onlineForm/OnlineForm.css') diff --git a/jero-web/src/views/documentManage/library/docDetail/index.vue b/jero-web/src/views/documentManage/library/docDetail/index.vue index afa8ee7a0..1fa4eeb0e 100644 --- a/jero-web/src/views/documentManage/library/docDetail/index.vue +++ b/jero-web/src/views/documentManage/library/docDetail/index.vue @@ -1,4 +1,5 @@