# go-captcha-vue **Repository Path**: wenlng/go-captcha-vue ## Basic Information - **Project Name**: go-captcha-vue - **Description**: 🖖 GoCaptcha for Vue, which implements click mode, slider mode, drag-drop mode and rotation mode. - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: http://gocaptcha.wencodes.com/package/vue/ - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-12-13 - **Last Updated**: 2024-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Go Captcha

Vue 行为验证码


> [English](README.md) | 中文

⭐️ 如果能帮助到你,请随手给点一个star

QQ交流群:178498936

Poster
| Vue Version | Go Captcha Version | |:-----------------------|:------------------:| | vue >= 2.7.14 && < 3.0 | go-captcha-vue@^1 | | vue >= 3.0 | go-captcha-vue@^2 | ## 安装 vue版本 >= 2.7.14 并且 < 3.0 ```shell yarn add go-captcha-vue@^1 # or npm install go-captcha-vue@^1 # or pnpm install go-captcha-vue@^1 ``` vue版本 >= 3.0 ```shell yarn add go-captcha-vue@^2 # or npm install go-captcha-vue@^2 # or pnpm install go-captcha-vue@^2 ``` ## 使用 ```ts import "go-captcha-vue/dist/style.css" import GoCaptcha from "go-captcha-vue" Vue.use(GoCaptcha) // OR import {Click, Rotate, Slide, SlideRegion, Button} from "go-captcha-vue"; Vue.component('gocaptcha-click', Click) Vue.component('gocaptcha-rotate', Rotate) Vue.component('gocaptcha-slide', Slide) Vue.component('gocaptcha-slide-region', SlideRegion) Vue.component('gocaptcha-button', Button) ``` ## 点选式 ```vue ``` ```ts // config = {} interface Config { width?: number; height?: number; thumbWidth?: number; thumbHeight?: number; verticalPadding?: number; horizontalPadding?: number; showTheme?: boolean; title?: string; buttonText?: string; iconSize?: number; dotSize?: number; } // data = {} interface Data { image: string; thumb: string; } // events = {} interface Events { click?: (x: number, y: number) => void; refresh?: () => void; close?: () => void; confirm?: (dots: Array, reset:() => void) => boolean; } // export component method interface ExportMethods { reset: () => void, clear: () => void, refresh: () => void, close: () => void, } ``` ## 滑动式 ```vue ``` ```ts // config = {} interface SlideConfig { width?: number; height?: number; thumbWidth?: number; thumbHeight?: number; verticalPadding?: number; horizontalPadding?: number; showTheme?: boolean; title?: string; iconSize?: number; scope ?: boolean; } // data = {} interface SlideData { thumbX: number; thumbY: number; thumbWidth: number; thumbHeight: number; image: string; thumb: string; } // events = {} interface SlideEvents { move?: (x: number, y: number) => void; refresh?: () => void; close?: () => void; confirm?: (point: SlidePoint, reset:() => void) => boolean; } // export component method interface ExportMethods { reset: () => void, clear: () => void, refresh: () => void, close: () => void, } ``` ## 拖拽式 ```vue ``` ```ts // config = {} interface SlideRegionConfig { width?: number; height?: number; thumbWidth?: number; thumbHeight?: number; verticalPadding?: number; horizontalPadding?: number; showTheme?: boolean; title?: string; iconSize?: number; scope ?: boolean; } // data = {} interface SlideRegionData { thumbX: number; thumbY: number; thumbWidth: number; thumbHeight: number; image: string; thumb: string; } // events = {} interface SlideRegionEvents { move?: (x: number, y: number) => void; refresh?: () => void; close?: () => void; confirm?: (point: SlideRegionPoint, reset:() => void) => boolean; } // export component method interface ExportMethods { reset: () => void, clear: () => void, refresh: () => void, close: () => void, } ``` ## 旋转式 ```vue ``` ```ts // config = {} interface Config { width?: number; height?: number; thumbWidth?: number; thumbHeight?: number; verticalPadding?: number; horizontalPadding?: number; showTheme?: boolean; title?: string; iconSize?: number; scope ?: boolean; } // data = {} interface Data { angle: number; image: string; thumb: string; } // events = {} interface Events { rotate?: (angle: number) => void; refresh?: () => void; close?: () => void; confirm?: (angle: number, reset:() => void) => boolean; } // export component method interface ExportMethods { reset: () => void, clear: () => void, refresh: () => void, close: () => void, } ``` ## 按钮 ```vue ``` ```ts interface $Attr { config?: CaptchaConfig; disabled?: boolean; type?: "default" | "warn" | "error" | "success"; title?: string; } interface $Event { clickEvent?: ()=>void; // event -> @clickEvent="" } export interface CaptchaConfig { width?: number; height?: number; verticalPadding?: number; horizontalPadding?: number; } ``` ## 👍 赞助一下