更新记录
1.0.0(2024-12-18)
下载此版本
1.介绍
sevenq-canvas-seal 组件是一个用于绘制自定义图案的canvas印章状态元素,要想完美使用该组件,请仔细阅读文档哈!!!
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 4.36 app-vue |
× |
3.0 |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
× |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
seven-canvas-seal
组件属性文档
seven-canvas-seal
组件是一个用于绘制自定义图案的canvas印章状态元素,以下是其支持的属性列表及其详细说明。
参数属性列表
属性名 |
类型 |
默认值 |
说明 |
canvasId |
String |
'canvas-first' |
canvas元素的ID。 |
width |
Number |
120 |
canvas的宽度,单位为px。 |
height |
Number |
120 |
canvas的高度,单位为px。 |
scaleRatio |
Number |
8 |
canvas的缩放比例,不建议修改。 |
fillBg |
String |
'rgba(255, 255, 255, 0.8)' |
外圆的填充背景颜色。 |
isShowOutCircle |
Boolean |
true |
是否显示外圆。 |
outRadiusMargin |
Number |
0 |
外圆距文本的距离。 |
borderWidth |
Number |
3 |
外圆边线的宽度,单位为px。 |
borderColor |
String |
'rgba(255, 0, 0, 1)' |
外圆边线的颜色。 |
totalAngleRadius |
Number |
250 |
文本所展示的区域角度。 |
isShowDate |
Boolean |
true |
是否在canvas上显示日期。 |
date |
String |
'智慧园区佳兴管理平台 2024年12月24号' |
显示的日期文本。 |
dateTextColor |
String |
'rgba(255, 0, 0, 1)' |
日期文本的颜色。 |
dateTextFontSize |
Number |
12 |
日期文本的字体大小,单位为px。 |
dateShowLoaction |
Number |
160 |
日期文本开始显示的位置。 |
innerCircleFillBg |
String |
'rgba(255, 255, 255, 0.8)' |
内圆填充背景颜色。 |
innerCircleBorderWidth |
Number |
3 |
内圆边线的宽度,单位为px。 |
innerCircleBorderColor |
String |
'rgba(255, 0, 0, 1)' |
内圆边线的颜色。 |
innerCircleMargin |
Number |
0 |
内圆距外圆边距。 |
isShowInnerHx |
Boolean |
false |
是否显示内圆内侧弧线。 |
innerHxMargin |
Number |
4 |
内侧弧线距离内圆边距。 |
innerHxOwnLength |
Number |
2 |
内圆内测弧线单个虚线长度。 |
innerHxOwnGraph |
Number |
10 |
内圆内测弧线单个虚线间隔。 |
innerHxBorderColor |
String |
'rgba(255, 0, 0, 1)' |
内圆内测弧线的边线颜色。 |
innerHxBorderWidth |
Number |
10 |
内圆内测弧线的边线宽度,单位为px。 |
isShowMostInnerCircle |
Boolean |
true |
是否显示最内侧圆。 |
mostInnerCircleLineColor |
String |
'rgba(255, 0, 0, 1)' |
最内侧圆边线颜色。 |
mostInnerCircelLineWidth |
Number |
1 |
最内侧圆边线宽度,单位为px。 |
mostInnerCircleMargin |
Number |
6 |
最内侧圆距内圆边距,单位为px。 |
statusText |
String |
'已审核' |
中心点状态文本。 |
statusFontSize |
Number |
20 |
中心点状态文本大小,单位为px。 |
statusTextColor |
String |
'rgba(255, 0, 0, 1)' |
中心点状态文本颜色。 |
statusTextDanger |
Number |
-35 |
中心点状态文本倾斜角度,单位为°。 |
statusTextWeight |
String |
'bold' |
中心点文本加粗,可选值'bold'或'normal'。 |
statusShadowVal |
Number |
1 |
中心点文本阴影。 |
isShowWaveLine |
Boolean |
true |
是否绘制波浪纹曲线。 |
curveWidth |
Number |
0.8 |
单条波浪纹曲线的宽度,区间在0到1之间。 |
curveColor |
String |
'rgba(255, 0, 0, 1)' |
单条波浪纹曲线的颜色,使用CSS颜色值。 |
curveWaveHeight |
Number |
0.06 |
波浪曲线最大高度,区间在0到1之间。 |
curveWaveLength |
Number |
20 |
单截曲线周期长度,不建议修改(如没有在中心,尝试修改此属性)。 |
numberOfWaves |
Number |
8 |
显示曲线的数量,最多10条显示效果更佳。 |
lineSpacing |
Number |
5 |
每条曲线间的间距,区间在0到10之间。 |
curveSmoothness |
Number |
0.06 |
曲线间平滑效果,区间在0到1之间。 |
curveWaveAngle |
Number |
-20 |
波浪线倾斜角度。 |
参数属性详细
canvasId
- 类型:
String
- 默认值:
'canvas-first'
- 说明: canvas元素的ID,用于在HTML中标识该canvas元素。
width
- 类型:
Number
- 默认值:
120
- 单位:
px
- 说明: canvas的宽度,定义了canvas画布的宽度。
height
- 类型:
Number
- 默认值:
120
- 单位:
px
- 说明: canvas的高度,定义了canvas画布的高度。
scaleRate
- 类型:
Number
- 默认值:
2.1
- 说明: canvas的缩放比例,用于调整绘制内容的整体大小,不建议修改。
fillBg
- 类型:
String
- 默认值:
'rgba(255, 255, 255, 0.8)'
- 说明: 外圆的填充背景颜色,使用CSS颜色值。
isShowOutCircle
- 类型:
Boolean
- 默认值:
true
- 说明: 是否显示外圆,如果设置为
false
,则不绘制外圆。
outRadiusMargin
- 类型:
Number
- 默认值:
0
- 说明: 外圆距文本的距离,调整外圆与内部文本之间的间隔。
borderWidth
- 类型:
Number
- 默认值:
3
- 单位:
px
- 说明: 外圆边线的宽度,定义了外圆边框的粗细。
borderColor
- 类型:
String
- 默认值:
'rgba(255, 0, 0, 1)'
- 说明: 外圆边线的颜色,使用CSS颜色值。
totalAngleRadius
- 类型:
Number
- 默认值:
250
- 说明: 文本所展示的区域角度,可以是半圆或者360°全方位铺开。
isShowDate
- 类型:
Boolean
- 默认值:
true
- 说明: 是否在canvas上显示日期。
date
- 类型:
String
- 默认值:
'智慧园区佳兴管理平台 2024年12月24号'
- 说明: 显示的日期文本。
dateTextColor
- 类型:
String
- 默认值:
'rgba(255, 0, 0, 1)'
- 说明: 日期文本的颜色,使用CSS颜色值。
dateTextFontSize
- 类型:
Number
- 默认值:
12
- 单位:
px
- 说明: 日期文本的字体大小。
dateShowLoaction
- 类型:
Number
- 默认值:
160
- 说明: 日期文本开始显示的位置,相对于canvas的顶部偏移量。
innerCircleFillBg
- 类型:
String
- 默认值:
'rgba(255, 255, 255, 0.8)'
- 说明: 内圆填充背景颜色,使用CSS颜色值。
innerCircleBorderWidth
- 类型:
Number
- 默认值:
3
- 单位:
px
- 说明: 内圆边线的宽度,定义了内圆边框的粗细。
innerCircleBorderColor
- 类型:
String
- 默认值:
'rgba(255, 0, 0, 1)'
- 说明: 内圆边线的颜色,使用CSS颜色值。
innerCircleMargin
- 类型:
Number
- 默认值:
0
- 说明: 内圆距外圆边距,调整内圆与外圆之间的间隔。
isShowInnerHx
- 类型:
Boolean
- 默认值:
false
- 说明: 是否显示内圆内侧弧线。
innerHxMargin
- 类型:
Number
- 默认值:
4
- 说明: 内侧弧线距离内圆边距,调整内侧弧线与内圆边缘的距离。
innerHxOwnLength
- 类型:
Number
- 默认值:
2
- 说明: 内圆内测弧线单个虚线长度,定义了虚线的长度。
innerHxOwnGraph
- 类型:
Number
- 默认值:
10
- 说明: 内圆内测弧线单个虚线间隔,定义了虚线之间的间隔。
innerHxBorderColor
- 类型:
String
- 默认值:
'rgba(255, 0, 0, 1)'
- 说明: 内圆内测弧线的边线颜色,使用CSS颜色值。
innerHxBorderWidth
- 类型:
Number
- 默认值:
10
- 单位:
px
- 说明: 内圆内测弧线的边线宽度。
isShowMostInnerCircle
- 类型:
Boolean
- 默认值:
true
- 说明: 是否显示最内侧圆。
mostInnerCircleLineColor
- 类型:
String
- 默认值:
'rgba(255, 0, 0, 1)'
- 说明: 最内侧圆边线颜色,使用CSS颜色值。
mostInnerCircelLineWidth
- 类型:
Number
- 默认值:
1
- 单位:
px
- 说明: 最内侧圆边线宽度。
mostInnerCircleMargin
- 类型:
Number
- 默认值:
6
- 单位:
px
- 说明: 最内侧圆距内圆边距。
statusText
- 类型:
String
- 默认值:
'已审核'
- 说明: 中心点状态文本。
statusFontSize
- 类型:
Number
- 默认值:
20
- 单位:
px
- 说明: 中心点状态文本大小。
statusTextColor
- 类型:
String
- 默认值:
'rgba(255, 0, 0, 1)'
- 说明: 中心点状态文本颜色,使用CSS颜色值。
statusTextDanger
- 类型:
Number
- 默认值:
-35
- 单位:
°
- 说明: 中心点状态文本倾斜角度。
statusTextWeight
- 类型:
String
- 默认值:
'bold'
- 说明: 中心点文本加粗,可选值
'bold'
或'normal'
。
statusShadowVal
- 类型:
Number
- 默认值:
1
- 说明: 中心点文本阴影。
isShowWaveLine
- 类型:
Boolean
- 默认值:
true
- 说明: 是否绘制波浪纹曲线。
curveWidth
- 类型:
Number
- 默认值:
0.8
- 说明: 单条波浪纹曲线的宽度,区间在0到1之间。
curveColor
- 类型:
String
- 默认值:
'rgba(255, 0, 0, 1)'
- 说明: 单条波浪纹曲线的颜色,使用CSS颜色值。
curveWaveHeight
- 类型:
Number
- 默认值:
0.06
- 说明: 波浪曲线最大高度,区间在0到1之间。
curveWaveLength
- 类型:
Number
- 默认值:
20
- 说明: 单截曲线周期长度,不建议修改(如没有在中心,尝试修改此属性)。
numberOfWaves
- 类型:
Number
- 默认值:
8
- 说明: 显示曲线的数量,最多10条显示效果更佳。
lineSpacing
- 类型:
Number
- 默认值:
5
- 说明: 每条曲线间的间距,区间在0到10之间。
curveSmoothness
- 类型:
Number
- 默认值:
0.06
- 说明: 曲线间平滑效果,区间在0到1之间。
curveWaveAngle
- 类型:
Number
- 默认值:
-20
- 说明: 波浪线倾斜角度。
注意:
1、 本组件完全遵守按需导入规则哈,不需要页面单独引入,下载到项目中直接可以使用。
1、如果想要完美使用此组件,需要仔细阅读文档哈,有问题随时评论,看到第一时间回复。
2、后续版本将会根据用户信息反馈持续迭代更新哈!!!
单个使用实例
<template>
<sevenq-canvas-seal canvasId="canvas-eighth" :width="130" :height="130" :isShowWaveLine="false"
:statusShadowVal="0" statusText="已通过" :borderColor="canvasThindColor"
:dateTextColor="canvasThindColor" :innerHxBorderColor="canvasThindColor"
:innerCircleBorderColor="canvasThindColor" :mostInnerCircleLineColor="canvasThindColor"
:statusTextColor="canvasThindColor">
</sevenq-canvas-seal>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const canvasThindColor = ref("rgba(85, 170, 0, 1.0)")
</script>
完整多个使用示例:(单页面多个组件,canvasId需要唯一)
<template>
<view class="container">
<!-- 第一组样式 状态印章-->
<view class="canvas-first">
<view>
<sevenq-canvas-seal canvasId="canvas-first" :width="100" :height="100" :isShowOutCircle="false"
:isShowDate="false" :isShowWaveLine="false" :statusShadowVal="0" statusText="待提交"
:innerHxBorderColor="canvasFistColor" :innerCircleBorderColor="canvasFistColor"
:mostInnerCircleLineColor="canvasFistColor" :statusTextColor="canvasFistColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-second" :width="100" :height="100" :isShowOutCircle="false"
:isShowDate="false" :isShowWaveLine="false" :statusShadowVal="0" statusText="待审批"
:innerHxBorderColor="canvasSecondColor" :innerCircleBorderColor="canvasSecondColor"
:mostInnerCircleLineColor="canvasSecondColor" :statusTextColor="canvasSecondColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-third" :width="100" :height="100" :isShowOutCircle="false"
:isShowDate="false" :isShowWaveLine="false" :statusShadowVal="10" statusText="已通过"
:innerHxBorderColor="canvasThindColor" :innerCircleBorderColor="canvasThindColor"
:mostInnerCircleLineColor="canvasThindColor" :statusTextColor="canvasThindColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-fourth" :width="100" :height="100" :isShowOutCircle="false"
:isShowDate="false" :isShowWaveLine="false" :statusShadowVal="10" statusText="已驳回"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-fiveth" :width="100" :height="100" :isShowOutCircle="false" isShowInnerHx
:isShowDate="false" :isShowWaveLine="false" :statusShadowVal="10" statusText="审批中"
:innerHxBorderColor="canvasfivethColor" :innerCircleBorderColor="canvasfivethColor"
:mostInnerCircleLineColor="canvasfivethColor" :statusTextColor="canvasfivethColor"></sevenq-canvas-seal>
</view>
</view>
<!-- 第二组样式 状态印章-->
<view class="canvas-second">
<view>
<sevenq-canvas-seal canvasId="canvas-sixth" :width="130" :height="130" :isShowWaveLine="false"
:statusShadowVal="0" statusText="待提交" :borderColor="canvasFistColor"
:dateTextColor="canvasFistColor" :innerHxBorderColor="canvasFistColor"
:innerCircleBorderColor="canvasFistColor" :mostInnerCircleLineColor="canvasFistColor"
:statusTextColor="canvasFistColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-seventh" :width="130" :height="130" :isShowWaveLine="false"
:statusShadowVal="0" statusText="待审批" :borderColor="canvasSecondColor"
:dateTextColor="canvasSecondColor" :innerHxBorderColor="canvasSecondColor"
:innerCircleBorderColor="canvasSecondColor" :mostInnerCircleLineColor="canvasSecondColor"
:statusTextColor="canvasSecondColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-eighth" :width="130" :height="130" :isShowWaveLine="false"
:statusShadowVal="0" statusText="已通过" :borderColor="canvasThindColor"
:dateTextColor="canvasThindColor" :innerHxBorderColor="canvasThindColor"
:innerCircleBorderColor="canvasThindColor" :mostInnerCircleLineColor="canvasThindColor"
:statusTextColor="canvasThindColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-ninth" :width="130" :height="130" :isShowWaveLine="false"
:statusShadowVal="0" statusText="已驳回"></sevenq-canvas-seal>
</view>
</view>
<!--第三组样式 状态印章-->
<view class="canvas-thind">
<view>
<sevenq-canvas-seal canvasId="canvas-tenth" :width="130" :height="130" :isShowWaveLine="false" isShowInnerHx
:innerHxOwnLength="2" :totalAngleRadius="160" date="2024年12月24日" :statusShadowVal="0"
statusText="待提交" :borderColor="canvasFistColor" :dateTextColor="canvasFistColor"
:innerHxBorderColor="canvasFistColor" :innerCircleBorderColor="canvasFistColor"
:mostInnerCircleLineColor="canvasFistColor" :statusTextColor="canvasFistColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-eleven" :width="130" :height="130" :isShowWaveLine="false" isShowInnerHx
:innerHxOwnLength="6" :totalAngleRadius="160" date="2024年12月24日" :statusShadowVal="0"
statusText="待审批" :borderColor="canvasSecondColor" :dateTextColor="canvasSecondColor"
:innerHxBorderColor="canvasSecondColor" :innerCircleBorderColor="canvasSecondColor"
:mostInnerCircleLineColor="canvasSecondColor" :statusTextColor="canvasSecondColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-twelve" :width="130" :height="130" :isShowWaveLine="false" isShowInnerHx
:innerHxOwnLength="16" :totalAngleRadius="160" date="2024年12月24日" :statusShadowVal="0"
statusText="已通过" :borderColor="canvasThindColor" :dateTextColor="canvasThindColor"
:innerHxBorderColor="canvasThindColor" :innerCircleBorderColor="canvasThindColor"
:mostInnerCircleLineColor="canvasThindColor" :statusTextColor="canvasThindColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-thirteen" :width="130" :height="130" :isShowWaveLine="false"
isShowInnerHx :innerHxOwnLength="26" :totalAngleRadius="250" :statusShadowVal="0"
statusText="已驳回"></sevenq-canvas-seal>
</view>
</view>
<!--第四组样式 状态印章-->
<view class="canvas-fourth">
<view>
<sevenq-canvas-seal canvasId="canvas-fourteen" :width="110" :height="110" :isShowWaveLine="true"
:innerHxOwnLength="2" :totalAngleRadius="160" date="2024年12月24日" :statusShadowVal="0"
statusText="待提交" :borderColor="canvasFistColor" :dateTextColor="canvasFistColor"
:innerHxBorderColor="canvasFistColor" :innerCircleBorderColor="canvasFistColor"
:mostInnerCircleLineColor="canvasFistColor" :statusTextColor="canvasFistColor" :curveWaveLength="22"
:curveColor="canvasFistColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-fifteen" :width="110" :height="110" :isShowWaveLine="true"
:innerHxOwnLength="6" :totalAngleRadius="160" date="2024年12月24日" :statusShadowVal="0"
statusText="待审批" :borderColor="canvasSecondColor" :dateTextColor="canvasSecondColor"
:innerHxBorderColor="canvasSecondColor" :innerCircleBorderColor="canvasSecondColor"
:mostInnerCircleLineColor="canvasSecondColor" :statusTextColor="canvasSecondColor"
:curveWaveLength="22" :curveColor="canvasSecondColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-sixteen" :width="110" :height="110" :totalAngleRadius="250"
:isShowWaveLine="true" statusText="已通过" :borderColor="canvasThindColor"
:dateTextColor="canvasThindColor" :innerHxBorderColor="canvasThindColor"
:innerCircleBorderColor="canvasThindColor" :mostInnerCircleLineColor="canvasThindColor"
:statusTextColor="canvasThindColor" :statusShadowVal="10" :curveWaveLength="22"
:curveColor="canvasThindColor"></sevenq-canvas-seal>
</view>
<view>
<sevenq-canvas-seal canvasId="canvas-seventeen" :width="110" :height="110" :isShowWaveLine="true"
:innerHxOwnLength="26" :totalAngleRadius="250" :statusShadowVal="10" :curveWaveLength="22"
statusText="已驳回"></sevenq-canvas-seal>
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import { ref, getCurrentInstance, computed, inject } from 'vue'
const canvasFistColor = ref("rgba(85, 85, 255, 1.0)")
const canvasSecondColor = ref("rgba(255, 85, 0, 1.0)")
const canvasThindColor = ref("rgba(85, 170, 0, 1.0)")
const canvasfivethColor = ref("rgba(0, 170, 255, 1.0)")
</script>
<style lang="scss" scoped>
.canvas-first,
.canvas-second,
.canvas-thind,
.canvas-fourth {
width: 750rpx;
margin: 100rpx 0rpx;
display: flex;
align-items: center;
justify-content: left;
margin-top: 160rpx;
view:not(:first-child) {
margin-left: 40rpx;
}
}
.canvas-first{
margin: 100rpx 0rpx;
}
.canvas-fourth {
view:not(:first-child) {
margin-left: 70rpx;
}
}
</style>