给所有组件添加name属性预防未知bug!!!

This commit is contained in:
puhui999
2023-04-14 21:32:11 +08:00
parent 44c18473d7
commit b93491579c
133 changed files with 1126 additions and 993 deletions

View File

@ -1,42 +1,42 @@
<template>
<div :class="mode == 'pop' ? 'mask' : ''" v-show="showBox">
<div v-show="showBox" :class="mode == 'pop' ? 'mask' : ''">
<div
:class="mode == 'pop' ? 'verifybox' : ''"
:style="{ 'max-width': parseInt(imgSize.width) + 20 + 'px' }"
>
<div class="verifybox-top" v-if="mode == 'pop'">
<div v-if="mode == 'pop'" class="verifybox-top">
{{ t('captcha.verification') }}
<span class="verifybox-close" @click="closeBox">
<i class="iconfont icon-close"></i>
</span>
</div>
<div class="verifybox-bottom" :style="{ padding: mode == 'pop' ? '10px' : '0' }">
<div :style="{ padding: mode == 'pop' ? '10px' : '0' }" class="verifybox-bottom">
<!-- 验证码容器 -->
<component
v-if="componentType"
:is="componentType"
:captchaType="captchaType"
:type="verifyType"
:figure="figure"
:arith="arith"
:mode="mode"
:vSpace="vSpace"
:explain="explain"
:imgSize="imgSize"
:blockSize="blockSize"
:barSize="barSize"
v-if="componentType"
ref="instance"
:arith="arith"
:barSize="barSize"
:blockSize="blockSize"
:captchaType="captchaType"
:explain="explain"
:figure="figure"
:imgSize="imgSize"
:mode="mode"
:type="verifyType"
:vSpace="vSpace"
/>
</div>
</div>
</div>
</template>
<script type="text/babel">
<script name="Verify" type="text/babel">
/**
* Verify 验证码组件
* @description 分发验证码使用
* */
import { VerifySlide, VerifyPoints } from './Verify'
import { VerifyPoints, VerifySlide } from './Verify'
import { computed, ref, toRefs, watchEffect } from 'vue'
export default {
@ -155,6 +155,7 @@ export default {
border-radius: 5px;
transform: translate(-50%, -50%);
}
.verifybox-top {
padding: 0 15px;
height: 40px;
@ -165,10 +166,12 @@ export default {
border-bottom: 1px solid #e4e7eb;
box-sizing: border-box;
}
.verifybox-bottom {
padding: 10px;
box-sizing: border-box;
}
.verifybox-close {
position: absolute;
top: 13px;
@ -178,6 +181,7 @@ export default {
text-align: center;
cursor: pointer;
}
.mask {
position: fixed;
top: 0;
@ -189,6 +193,7 @@ export default {
/* display: none; */
transition: all 0.5s;
}
.verify-tips {
text-indent: 10px;
position: absolute;
@ -199,22 +204,27 @@ export default {
line-height: 30px;
color: #fff;
}
.suc-bg {
background-color: rgba(92, 184, 92, 0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7f5CB85C, endcolorstr=#7f5CB85C);
}
.err-bg {
background-color: rgba(217, 83, 79, 0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7fD9534F, endcolorstr=#7fD9534F);
}
.tips-enter,
.tips-leave-to {
bottom: -30px;
}
.tips-enter-active,
.tips-leave-active {
transition: bottom 0.5s;
}
/* ---------------------------- */
/*常规验证码*/
.verify-code {

View File

@ -2,20 +2,20 @@
<div style="position: relative">
<div class="verify-img-out">
<div
class="verify-img-panel"
:style="{
width: setSize.imgWidth,
height: setSize.imgHeight,
'background-size': setSize.imgWidth + ' ' + setSize.imgHeight,
'margin-bottom': vSpace + 'px'
}"
class="verify-img-panel"
>
<div class="verify-refresh" style="z-index: 3" @click="refresh" v-show="showRefresh">
<div v-show="showRefresh" class="verify-refresh" style="z-index: 3" @click="refresh">
<i class="iconfont icon-refresh"></i>
</div>
<img
:src="'data:image/png;base64,' + pointBackImgBase"
ref="canvas"
:src="'data:image/png;base64,' + pointBackImgBase"
alt=""
style="width: 100%; height: 100%; display: block"
@click="bindingClick ? canvasClick($event) : undefined"
@ -24,7 +24,6 @@
<div
v-for="(tempPoint, index) in tempPoints"
:key="index"
class="point-area"
:style="{
'background-color': '#1abd6c',
color: '#fff',
@ -38,6 +37,7 @@
top: parseInt(tempPoint.y - 10) + 'px',
left: parseInt(tempPoint.x - 10) + 'px'
}"
class="point-area"
>
{{ index + 1 }}
</div>
@ -45,19 +45,19 @@
</div>
<!-- 'height': this.barSize.height, -->
<div
class="verify-bar-area"
:style="{
width: setSize.imgWidth,
color: barAreaColor,
'border-color': barAreaBorderColor,
'line-height': barSize.height
}"
class="verify-bar-area"
>
<span class="verify-msg">{{ text }}</span>
</div>
</div>
</template>
<script type="text/babel" setup>
<script name="VerifyPoints" setup type="text/babel">
/**
* VerifyPoints
* @description 点选
@ -65,7 +65,7 @@
import { resetSize } from './../utils/util'
import { aesEncrypt } from './../utils/ase'
import { getCode, reqCheck } from '@/api/login'
import { onMounted, reactive, ref, nextTick, toRefs, getCurrentInstance } from 'vue'
import { getCurrentInstance, nextTick, onMounted, reactive, ref, toRefs } from 'vue'
const props = defineProps({
//弹出式pop固定fixed

View File

@ -2,20 +2,20 @@
<div style="position: relative">
<div
v-if="type === '2'"
class="verify-img-out"
:style="{ height: parseInt(setSize.imgHeight) + vSpace + 'px' }"
class="verify-img-out"
>
<div class="verify-img-panel" :style="{ width: setSize.imgWidth, height: setSize.imgHeight }">
<div :style="{ width: setSize.imgWidth, height: setSize.imgHeight }" class="verify-img-panel">
<img
:src="'data:image/png;base64,' + backImgBase"
alt=""
style="width: 100%; height: 100%; display: block"
/>
<div class="verify-refresh" @click="refresh" v-show="showRefresh">
<div v-show="showRefresh" class="verify-refresh" @click="refresh">
<i class="iconfont icon-refresh"></i>
</div>
<transition name="tips">
<span class="verify-tips" v-if="tipWords" :class="passFlag ? 'suc-bg' : 'err-bg'">
<span v-if="tipWords" :class="passFlag ? 'suc-bg' : 'err-bg'" class="verify-tips">
{{ tipWords }}
</span>
</transition>
@ -23,24 +23,21 @@
</div>
<!-- 公共部分 -->
<div
class="verify-bar-area"
:style="{ width: setSize.imgWidth, height: barSize.height, 'line-height': barSize.height }"
class="verify-bar-area"
>
<span class="verify-msg" v-text="text"></span>
<div
class="verify-left-bar"
:style="{
width: leftBarWidth !== undefined ? leftBarWidth : barSize.height,
height: barSize.height,
'border-color': leftBarBorderColor,
transaction: transitionWidth
}"
class="verify-left-bar"
>
<span class="verify-msg" v-text="finishText"></span>
<div
class="verify-move-block"
@touchstart="start"
@mousedown="start"
:style="{
width: barSize.height,
height: barSize.height,
@ -48,17 +45,20 @@
left: moveBlockLeft,
transition: transitionLeft
}"
class="verify-move-block"
@mousedown="start"
@touchstart="start"
>
<i :class="['verify-icon iconfont', iconClass]" :style="{ color: iconColor }"></i>
<div
v-if="type === '2'"
class="verify-sub-block"
:style="{
width: Math.floor((parseInt(setSize.imgWidth) * 47) / 310) + 'px',
height: setSize.imgHeight,
top: '-' + (parseInt(setSize.imgHeight) + vSpace) + 'px',
'background-size': setSize.imgWidth + ' ' + setSize.imgHeight
}"
class="verify-sub-block"
>
<img
:src="'data:image/png;base64,' + blockBackImgBase"
@ -71,7 +71,7 @@
</div>
</div>
</template>
<script type="text/babel" setup>
<script name="VerifySlide" setup type="text/babel">
/**
* VerifySlide
* @description 滑块