惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

diss带码

datart系列04:基于threejs自定义插件3D-MAP datart系列03:图表插件开发 datart系列02:图表插件开发作品 datart系列01:图表插件开发作品大赛 我的2021年新Mac设置 小程序:Painter画布 小程序:mqtt+webview控制显示内容 小程序:webview + PDF预览 小程序:数十年Lite 验证码:五福临门 开源论坛:社区选择Discourse 牛年开篇:网站拜年 github自定义主页秀 Davinci-二次开发系列08:mongoDB(JDBC查询)四种解决方案 Davinci-二次开发系列07:BI新元素尝试 Davinci-二次开发系列06:导出excel合并单元格 Metabase-BI系列12:0.35版本表达式是真的香 Davinci-二次开发系列05:echarts-gl map3D扩展 Davinci-二次开发系列03:区域地图下钻与选择
Davinci-二次开发系列04:自定义水印扩展
2020-04-03 · via diss带码

水印(watermark)

​ 目前来看,水印已经具有很高的附加价值了,钱币的水印能防伪,资料上的水印能宣传,甚至很多对外的产品软件都把去水印当成VIP的一项特殊功能,随着知识产权加强,知识付费的流行,水印也成了防止盗用的一种很重要的手段。

​ Davinci的水印我觉着官方迟早会出,但目前来看短时间出不来,出成什么样子也不确定,所以我们就先制瓜吃瓜。

​ 效果:

watermark

水印制作

自定义水印位置

​ 既然是自定义水印,自然也离不开用户和权限,为了先实现自定义,不考虑复杂因素,自定义水印根据项目划分,支持快捷显示项目名称等,不考虑用户自定义和项目自定义水印同时存在的情况。

​ 在用户界面》》组织》》项目》》设置》》水印设置

水印显示位置

目前来看有这么几个位置:

  • widget编辑区(编辑区理论不需要水印,观点不一)
  • dashboard看板
  • display大屏
  • widget分享面板(官方留了口子,但没有实现完善,暂不考虑)
  • dashboard分享面板
  • display分享面板

widget工作区:

water-edit

dashboard页面:

water-dashboard

display页面:

water-display

水印属性

  • 开启关闭

  • 项目名称

  • 用户名

  • 水印文本(比如“内部资料,严禁外传”这类)

  • 水印时间戳(支持多种日期格式)

  • 水印颜色

备注:未实现上传图片等格式的水印

data

水印编码实现

用户信息获取

​ 登录用户信息获取目前有两种

​ 方式一:

1
2
3
const mapStateToProps = createStructuredSelector({
loginUser: makeSelectLoginUser(),
})

​ 方式二:

1
const loginUser = localStorage.getItem('loginUser')

项目信息获取

1
2
3
const mapStateToProps = createStructuredSelector({
currentProject: makeSelectCurrentProject()
})

后台改造

后台改造比较简单:

第一:project表增加config字段,类型text,注意和json的转换

第二:分享功能增加project信息,用于展示项目名称,因为分享不登录状态即可访问,所以无法显示用户名

前端改造

前端改造难点除代码语法外,

第一:重点还是在用户名称和项目名称获取上

第二:自定义水印在组织里面,项目的获取和值传递

第三:分享功能,项目信息传递

第四:水印组件引入可以放在多个位置,放到widget下面会比较省劲,尤其是要求多个地方都呈现水印

几个推荐和注意

dashboard和display水印问题

​ 第一:看上面的效果图能明显看到水印是最终实在单个widget下面的,而不是在整个面板上的,整体效果就差一些

​ 第二:尤其是大屏这种,可以考虑每个大屏自定义水印,因为大屏有自身特有的组件

导出excel水印

数据导出excel同样需要水印,推荐实现

分享链接的水印

Davinci里面widget、dashboard、display都支持分享,widget不完善,分享不受权限控制,也不是我们正常进入到某个项目里面的操作,而我们的自定义水印是根据项目设定的,所以分享链接需要根据dashboard获取项目信息和水印的配置信息,并传递到widget组件里。

定时任务邮件接收水印

邮件接收报表带水印是非常合理的,根据水印时间戳更是能够准确判断当前报表的出具时间。

交流学习

刚建的群,学习Metabase、Davinci等开源BI,群号:72569367,感兴趣的可以加一下。