|
|
@@ -36,13 +36,13 @@ watch(getShow, (show) => {
|
|
|
if (show && !hasInitDingLogin.value) {
|
|
|
initDingLogin()
|
|
|
hasInitDingLogin.value = true
|
|
|
+ } else if (!show && hasInitDingLogin.value) {
|
|
|
+ destroyDingLogin()
|
|
|
}
|
|
|
})
|
|
|
|
|
|
onBeforeUnmount(() => {
|
|
|
- if (messageHandler.value) {
|
|
|
- window.removeEventListener('message', messageHandler.value, false)
|
|
|
- }
|
|
|
+ destroyDingLogin()
|
|
|
})
|
|
|
const _getRandomString = (len) => {
|
|
|
len = len || 10
|
|
|
@@ -71,6 +71,8 @@ const initDingLogin = () => {
|
|
|
)
|
|
|
|
|
|
nextTick(() => {
|
|
|
+ if (!getShow.value) return
|
|
|
+
|
|
|
var obj = window.DDLogin({
|
|
|
id: 'login_container',
|
|
|
goto: gotoUrl,
|
|
|
@@ -116,4 +118,17 @@ const initDingLogin = () => {
|
|
|
messageHandler.value = handleMessage
|
|
|
// }
|
|
|
}
|
|
|
+
|
|
|
+const destroyDingLogin = () => {
|
|
|
+ if (messageHandler.value) {
|
|
|
+ window.removeEventListener('message', messageHandler.value, false)
|
|
|
+ messageHandler.value = null
|
|
|
+ }
|
|
|
+
|
|
|
+ const box = document.getElementById('login_container')
|
|
|
+ if (box) {
|
|
|
+ box.innerHTML = ''
|
|
|
+ }
|
|
|
+ hasInitDingLogin.value = false
|
|
|
+}
|
|
|
</script>
|