Skip to content

XtfWatermark

组件说明

xtf-watermark 是内容容器型平铺水印组件,适用于合同、审批和报表等防泄漏场景。它会将文本、可选图片和时间戳编码为 SVG 背景,不会拦截内部内容的触摸事件。


基础用法

1. 文本水印

vue
<template>
  <xtf-watermark text="仅内部使用">
    <xtf-card title="经营报表"><xtf-text text="本月 GMV 128 万" /></xtf-card>
  </xtf-watermark>
</template>
<script>
export default {}
</script>

2. 身份与时间戳

vue
<template>
  <xtf-watermark
    text="合同预览"
    secondary-text="buyer-1024 / 采购经理"
    show-timestamp
    timestamp-text="2026-08-24 10:30"
    density="sm"
    ><xtf-card title="合同 CN-2026-01"
  /></xtf-watermark>
</template>
<script>
export default {}
</script>

3. 图标和方向配置

vue
<template>
  <xtf-watermark
    text="审批流转单"
    image-src="/static/logo.png"
    color="#334155"
    :opacity="0.4"
    :font-size="32"
    direction="horizontal"
    density="lg"
    ><xtf-card><xtf-button label="确认审批" @click="approve" /></xtf-card>
  </xtf-watermark>
</template>
<script>
export default {
  methods: {
    approve() {
      uni.showToast({ title: '已提交审批', icon: 'none' })
    }
  }
}
</script>

全部属性

属性类型默认值作用描述适用范围
textString'ULink UI'主水印文字所有水印
secondaryTextString''第二行身份或业务信息合同、审批场景
imageSrcString''水印图片地址放置品牌标记
opacityString | Number0.28水印透明度,最终限制为 0.04-1调整可见度
densityString'md'sm/md/lg 平铺密度合同紧密、报表稀疏
showTimestampBooleanfalse显示第三行时间戳需要追溯时
timestampTextString''指定时间戳;空时生成当前时间固定导出时间
colorString''水印颜色,空时为 #475569调整品牌色
fontSizeString | Number24主文字字号调整识别度
fontWeightString | Number600SVG 文字字重调整强调度
gapXString | Number''覆盖水平平铺间距自定义密度
gapYString | Number''覆盖垂直平铺间距自定义密度
directionString''slash/backslash/horizontal/vertical 预设方向常用方向
rotateNumber-18未命中 direction 预设时的旋转角度任意倾角
zIndexString | Number2水印层级与内容层叠放
customClassString''容器类名局部定制
customStyleString | Object''容器样式局部定制

事件

组件源码未定义 emits。水印层设置了 pointer-events: none,内部插槽内容的点击、提交等事件可照常直接监听。


插槽

插槽名称作用域参数说明
默认插槽-放置需要加水印保护的页面内容;水印不会拦截插槽内容的触摸事件。

插槽使用示例

vue
<template>
  <xtf-watermark text="内部资料" secondary-text="finance-001">
    <xtf-cell title="结算单" value="待确认" clickable @click="openDetail" />
  </xtf-watermark>
</template>
<script>
export default {
  methods: {
    openDetail() {
      uni.showToast({ title: '打开结算详情', icon: 'none' })
    }
  }
}
</script>

主题说明

  • 水印图层由运行时 SVG 背景生成;默认文字颜色为 #475569,可通过 color 覆盖。
  • 组件设置 --xtf-watermark-font-size,水印层级使用 zIndex,内容层固定在水印之下。
  • 通过业务页的 customStylecolor 和密度属性统一控制防泄漏强度;该组件没有独立全局颜色变量。

MIT Licensed