## @jianyu/vue-anti
### npm-package-git-url-formats
> [官网npm-package-git-url-formatsnpm-package-git-url-formats](https://docs.npmjs.com/about-packages-and-modules#npm-package-git-url-formats
- `http://192.168.3.207:8080/EFE/vue-anti.git#commit-ish`
- `ssh://root@192.168.3.207:10022/EFE/vue-anti.git#commit-ish`
`commit-ish` 可以是所有`标签` 、`sha (commit-id)`、`分支`
`commit-ish` 默认是`master`
### 开发库
```
yarn
yarn run serve
```
### 引用库
#### 安装
```json
1. 在package.json的dependencies中添加
{
"dependencies": {
"@jianyu/vue-anti": "http://192.168.3.207:8080/EFE/vue-anti.git#v0.1.0",
}
}
2. 执行命令 yarn
```
```
# 使用git tag进行包的版本管理
http://192.168.3.207:8080/EFE/vue-anti.git#v0.1.0
{仓库地址}#{commit-ish}
```
#### 调用示例
```js
// 库一共提供了以下内容
import {
VerifyPointsComponent, // 验证码组件.vue
VerifyPointsPopup, // (popup+验证码组件).vue
VerifyPointsClass, // 提供了js调用VerifyPointsPopup的class
registerAntiInterceptors // 集成axios响应拦截器,并支持重发请求等弹窗验证逻辑
} from '@jianyu/vue-anti'
```
##### 拦截器注册方式
> 这是最简单的使用方式。只需要引入调用并传入 **axios** 实例即可
```js
import service from './service'
import { registerAntiInterceptors } from '@jianyu/vue-anti'
// 注册拦截器
registerAntiInterceptors(service)
export default service
```
##### JS调用方式
> 该库还提供了单独调用验证码弹窗的class。
>
> 在 拦截器注册 满足不了需求的情况下可以更加灵活的使用验证码弹窗组件
```js
import { VerifyPointsClass } from '@jianyu/vue-anti'
const instance = new VerifyPointsClass()
// 显示弹窗
instance.verify({
value: true, // 控制显示隐藏
imgBase64: res.imgData,
textVerify: res.textVerify,
refresh () {},
confirm (msg) {
const { pointsCoordinate, imgWidth } = msg
// pointsCoordinate,验证点的坐标信息 [`${x},${y}`]
// example: ['34,22', '76,82']
// imgWidth图片宽度 Int(px)
console.log(msg)
}
})
// 隐藏弹窗
instance.verify({ value: false })
```
```js
// 弹窗高级用法
const iReceivedMsg = await new Promise((resolve) => {
instance.verify({
value: true,
imgBase64: res.imgData,
textVerify: res.textVerify,
refresh () {
resolve({
type: 'refresh'
})
},
confirm (msg) {
resolve({
type: 'confirm',
imgw: msg.imgWidth,
antiVerifyCheck: msg.pointsCoordinate.join(';')
})
verify.$vm.onReset()
}
})
})
console.log(iReceivedMsg)
```
##### 引用组件方式
> 该库还可以支持在vue组件内使用
>
> 在页面弹窗可以使用 VerifyPointsPopup 组件
>
> 嵌入到页面信息流中可以使用 VerifyPoints 组件
```vue
```