mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2025-10-06 00:27:00 +08:00
卸载组件取消监听
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<view :class="props.mode == 'pop' ? 'mask' : ''" v-show="showBox">
|
<view :class="props.mode == 'pop' ? 'mask' : ''" v-if="showBox">
|
||||||
<view
|
<view
|
||||||
:class="props.mode == 'pop' ? 'verify-box' : ''"
|
:class="props.mode == 'pop' ? 'verify-box' : ''"
|
||||||
:style="{ 'max-width': parseInt(props.imgSize.width) + 30 + 'px' }"
|
:style="{ 'max-width': parseInt(props.imgSize.width) + 30 + 'px' }"
|
||||||
|
@@ -22,7 +22,6 @@
|
|||||||
height: props.imgSize.height + 'px',
|
height: props.imgSize.height + 'px',
|
||||||
top: '0px',
|
top: '0px',
|
||||||
left: data.moveBlockLeft,
|
left: data.moveBlockLeft,
|
||||||
transition: data.transitionLeft,
|
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<image
|
<image
|
||||||
@@ -73,11 +72,10 @@
|
|||||||
@touchend="end"
|
@touchend="end"
|
||||||
@touchmove="move"
|
@touchmove="move"
|
||||||
:style="{
|
:style="{
|
||||||
width: blockSize.width+'px',
|
width: blockSize.width + 'px',
|
||||||
height: '40px',
|
height: '40px',
|
||||||
'background-color': data.moveBlockBackgroundColor,
|
'background-color': data.moveBlockBackgroundColor,
|
||||||
left: data.moveBlockLeft,
|
left: data.moveBlockLeft,
|
||||||
transition: data.transitionLeft,
|
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<text
|
<text
|
||||||
@@ -98,6 +96,7 @@ import {
|
|||||||
ref,
|
ref,
|
||||||
reactive,
|
reactive,
|
||||||
onMounted,
|
onMounted,
|
||||||
|
onUnmounted,
|
||||||
watch,
|
watch,
|
||||||
computed,
|
computed,
|
||||||
getCurrentInstance,
|
getCurrentInstance,
|
||||||
@@ -175,42 +174,8 @@ const data = reactive({
|
|||||||
status: false, //鼠标状态
|
status: false, //鼠标状态
|
||||||
isEnd: false, //是够验证完成
|
isEnd: false, //是够验证完成
|
||||||
showRefresh: true,
|
showRefresh: true,
|
||||||
transitionLeft: "",
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Methods 定义
|
|
||||||
const init = () => {
|
|
||||||
data.text = props.explain;
|
|
||||||
getPictrue();
|
|
||||||
|
|
||||||
// #ifdef WEB
|
|
||||||
window.removeEventListener("touchmove", (e) => {
|
|
||||||
move(e);
|
|
||||||
});
|
|
||||||
window.removeEventListener("mousemove", (e) => {
|
|
||||||
move(e);
|
|
||||||
});
|
|
||||||
|
|
||||||
window.addEventListener("touchmove", (e) => {
|
|
||||||
move(e);
|
|
||||||
});
|
|
||||||
window.addEventListener("mousemove", (e) => {
|
|
||||||
move(e);
|
|
||||||
});
|
|
||||||
|
|
||||||
//鼠标松开
|
|
||||||
window.addEventListener("touchend", (e) => {
|
|
||||||
console.log('touchend');
|
|
||||||
|
|
||||||
end(e);
|
|
||||||
});
|
|
||||||
window.addEventListener("mouseup", (e) => {
|
|
||||||
console.log('mouseup');
|
|
||||||
end(e);
|
|
||||||
});
|
|
||||||
// #endif
|
|
||||||
};
|
|
||||||
|
|
||||||
let startLeft = ref(0);
|
let startLeft = ref(0);
|
||||||
const start = (e) => {
|
const start = (e) => {
|
||||||
// ... 鼠标按下逻辑
|
// ... 鼠标按下逻辑
|
||||||
@@ -266,6 +231,8 @@ const move = (e) => {
|
|||||||
|
|
||||||
const end = (e) => {
|
const end = (e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
console.log('end');
|
||||||
|
|
||||||
// ... 鼠标松开逻辑
|
// ... 鼠标松开逻辑
|
||||||
data.endMovetime = new Date().getTime();
|
data.endMovetime = new Date().getTime();
|
||||||
|
|
||||||
@@ -298,7 +265,8 @@ const end = (e) => {
|
|||||||
url: `/captcha/check`,
|
url: `/captcha/check`,
|
||||||
data: sendData,
|
data: sendData,
|
||||||
method: "POST",
|
method: "POST",
|
||||||
}).then((result) => {
|
})
|
||||||
|
.then((result) => {
|
||||||
let res = result.data;
|
let res = result.data;
|
||||||
data.showRefresh = true;
|
data.showRefresh = true;
|
||||||
data.status = false;
|
data.status = false;
|
||||||
@@ -338,13 +306,12 @@ const end = (e) => {
|
|||||||
data.tipWords = "";
|
data.tipWords = "";
|
||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
}).catch((err) => {
|
})
|
||||||
|
.catch((err) => {
|
||||||
data.status = false;
|
data.status = false;
|
||||||
data.isEnd = true;
|
data.isEnd = true;
|
||||||
console.log(err);
|
console.log(err);
|
||||||
})
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -352,7 +319,7 @@ const refresh = () => {
|
|||||||
// ... 刷新验证码逻辑
|
// ... 刷新验证码逻辑
|
||||||
data.showRefresh = true;
|
data.showRefresh = true;
|
||||||
data.finishText = "";
|
data.finishText = "";
|
||||||
// data.transitionLeft = "left .3s";
|
|
||||||
data.moveBlockLeft = "0";
|
data.moveBlockLeft = "0";
|
||||||
data.leftBarWidth = "";
|
data.leftBarWidth = "";
|
||||||
|
|
||||||
@@ -363,7 +330,6 @@ const refresh = () => {
|
|||||||
getPictrue();
|
getPictrue();
|
||||||
data.isEnd = false;
|
data.isEnd = false;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
data.transitionLeft = "";
|
|
||||||
data.text = props.explain;
|
data.text = props.explain;
|
||||||
}, 300);
|
}, 300);
|
||||||
};
|
};
|
||||||
@@ -400,13 +366,39 @@ const getPictrue = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
defineExpose({
|
// Methods 定义
|
||||||
refresh,
|
const init = () => {
|
||||||
});
|
data.text = props.explain;
|
||||||
|
getPictrue();
|
||||||
|
|
||||||
|
// #ifdef WEB
|
||||||
|
// window.removeEventListener("touchmove",move);
|
||||||
|
// window.removeEventListener("mousemove",move);
|
||||||
|
|
||||||
|
window.addEventListener("touchmove", move);
|
||||||
|
window.addEventListener("mousemove", move);
|
||||||
|
|
||||||
|
//鼠标松开
|
||||||
|
window.addEventListener("touchend", end);
|
||||||
|
window.addEventListener("mouseup", end);
|
||||||
|
// #endif
|
||||||
|
};
|
||||||
// 组件挂载时调用
|
// 组件挂载时调用
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
init();
|
init();
|
||||||
});
|
});
|
||||||
|
onUnmounted(() => {
|
||||||
|
// #ifdef WEB
|
||||||
|
window.removeEventListener("touchmove", move);
|
||||||
|
window.removeEventListener("mousemove", move);
|
||||||
|
window.removeEventListener("touchend", end);
|
||||||
|
window.removeEventListener("mouseup", end);
|
||||||
|
// #endif
|
||||||
|
});
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
refresh,
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.verify-tips {
|
.verify-tips {
|
||||||
|
Reference in New Issue
Block a user