更新记录

1.0.0(2025-06-06) 下载此版本

初始化


平台兼容性

uni-app(4.28)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
-
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

画布Canvas 画板 区域绘制 区域报警(小程序/App/移动端/iPad)

组件名:wsx-canvas-draw

关联组件:画布canvasuniwsx

数据回选、自定义上传画布图片背景、区域报警、基于uniapp打造,支持移动端、iPad、自定义配置。支持H5,微信小程序,APP等全端

功能说明

1.uni-app在image上绘制自定义区域 2.设置canvas的宽高比例,以适应图片尺寸 3.根据画布大小计算绘制区域位置 4.添加绘制区域 5.编辑绘制区域 6.删除绘制区域 7.清空绘制区域 8.设置区域报警(爆闪)

使用方式:

<template>
    <view class="wsx">
        <wsx-canvas-draw :imageInfo="imageInfo" :submitData="submitData" ref="canvasDraw"> </wsx-canvas-draw>
    </view>
</template>

<script>
    import wsxCanvasDraw from '../../components/wsx-canvas-draw/index.vue'
    export default {
        components: {
            wsxCanvasDraw,
        },
        data() {
            return {
                imageInfo: {
                    imgUrl: "/static/factoryImg.jpg",
                    width: 700,
                    height: 1400
                },
                submitData: [{
                        area_id: "",
                        area_name: "区域一",
                        polygon: {
                            x1: 89,
                            x2: 85,
                            x3: 273,
                            x4: 269,
                            y1: 72,
                            y2: 145,
                            y3: 137,
                            y4: 76,
                        },
                        uuid: "e0d0e522-462e-4c57-8ff1-946244288130",
                    },
                    {
                        area_id: "",
                        area_name: "区域二",
                        polygon: {
                            x1: 179,
                            x2: 30,
                            x3: 31,
                            x4: 341,
                            x5: 341,
                            y1: 238,
                            y2: 338,
                            y3: 434,
                            y4: 423,
                            y5: 325,
                        },
                        uuid: "0e5aab62-0021-4e11-b7c6-71bd405746e3",
                    }
                ],
            };
        },
        mounted() {
            this.init()
        },
        methods: {
            init() {
                this.$refs.canvasDraw.init()
            },
        },
    };
</script>

参数说明:

参数 类型 默认值 说明
imageInfo Object {} 画布背景图片信息
submitData Array [] 保存db中 区域信息回选

事件说明:

事件称名 说明
drawStart 绘制开始
drawEnd 绘制结束
drawEdit 编辑名称
deleteArea 删除区域
drawClear 清空图纸
drawSave 保存区域
triggerAlarmStart 触发报警
triggerAlarmEnd 结束报警
init 初始化
initCanvas 初始化画布信息
onTouchStart 画布点击事件
selectArea 击选中某个区域
isPointInPolygon 计算点击位置是否存在某个区域中
updateDraw 更新画布绘制区域
回调事件 说明
deleteArea 删除区域
drawClear 清空图纸
drawSave 保存区域

1.初始化Canvas

调用init()方法初始化Canvas画布 调用initCanvas()方法设置画布宽高比例,加载并绘制图片

2.开始绘制

点击开始绘制 drawStart 方法 监听Canvas @touchstart事件 点击时,在drawImageClick中记录点坐标,在drawImageArea中实时绘制区域 点击结束绘制 drawEnd 方法 添加区域名称 点击确定 areaSave 方法

3.区域报警

可设置指定区域色块爆闪

感谢支持

爱人者,人恒爱之;敬人者,人恒敬之;
制作不易, 每一份支持, 都是对我最大的肯定, 让我更有动力创造美好!
如果你在项目中使用该插件并解决了你的问题,请给予厚爱!

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问