|
|
|
@ -31,20 +31,14 @@
|
|
|
|
|
</el-row> |
|
|
|
|
</template> |
|
|
|
|
<script lang="ts" setup> |
|
|
|
|
import logoImg from '@/assets/imgs/logo.png' |
|
|
|
|
import * as LoginApi from '@/api/login' |
|
|
|
|
import * as authUtil from '@/utils/auth' |
|
|
|
|
import LoginFormTitle from './LoginFormTitle.vue' |
|
|
|
|
import { LoginStateEnum, useLoginState } from './useLogin' |
|
|
|
|
import router from '@/router' |
|
|
|
|
defineOptions({ name: 'QrCodeForm' }) |
|
|
|
|
|
|
|
|
|
const imageUrl = ref('') |
|
|
|
|
const uuuid = ref('') |
|
|
|
|
const uuid = ref('') |
|
|
|
|
const refreshQR = ref(false) |
|
|
|
|
|
|
|
|
|
const { t } = useI18n() |
|
|
|
|
const { handleBackLogin, getLoginState } = useLoginState() |
|
|
|
|
const getShow = computed(() => true) |
|
|
|
|
// 存储定时器 ID,用于后续清除定时器 |
|
|
|
|
let intervalId = ref() |
|
|
|
@ -59,10 +53,9 @@ const getimg = async () => {
|
|
|
|
|
array.forEach((value) => { |
|
|
|
|
result += value.toString(16).padStart(8, '0') |
|
|
|
|
}) |
|
|
|
|
uuuid.value = result |
|
|
|
|
|
|
|
|
|
var mockBinaryData = await LoginApi.getCodeWebPic({ |
|
|
|
|
scene: uuuid.value, |
|
|
|
|
uuid.value = result |
|
|
|
|
const mockBinaryData = await LoginApi.getCodeWebPic({ |
|
|
|
|
scene: uuid.value, |
|
|
|
|
path: 'sub/common/waiting', |
|
|
|
|
checkPath: false |
|
|
|
|
}) |
|
|
|
@ -90,9 +83,7 @@ const tenMinutes = 10 * 60 * 10000
|
|
|
|
|
const refaulst = () => { |
|
|
|
|
refreshQR.value = false |
|
|
|
|
// 先清除之前的定时器,避免重复调用 |
|
|
|
|
if (intervalId) { |
|
|
|
|
clearInterval(intervalId.value) |
|
|
|
|
} |
|
|
|
|
intervalId.value && clearInterval(intervalId.value) |
|
|
|
|
// 设置定时器,每 5 秒(可根据实际需求调整)调用一次接口 |
|
|
|
|
intervalId.value = setInterval(async () => { |
|
|
|
|
try { |
|
|
|
@ -101,17 +92,14 @@ const refaulst = () => {
|
|
|
|
|
clearInterval(intervalId.value) |
|
|
|
|
console.log('定时器已停止,已过去 10 分钟。') |
|
|
|
|
refreshQR.value = true |
|
|
|
|
|
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const res = await LoginApi.qrLoginCode({ code: uuuid.value }) |
|
|
|
|
|
|
|
|
|
if (res) { |
|
|
|
|
clearInterval(intervalId.value) |
|
|
|
|
authUtil.setToken(res) |
|
|
|
|
const res = await LoginApi.qrLoginCode({ code: uuid.value }) |
|
|
|
|
intervalId.value && clearInterval(intervalId.value) |
|
|
|
|
authUtil.setToken(res) |
|
|
|
|
await nextTick(() => { |
|
|
|
|
router.push({ path: '/' }) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} catch (error) { |
|
|
|
|
console.error('获取扫码状态失败:', error) |
|
|
|
|
} |
|
|
|
@ -122,10 +110,9 @@ onMounted(() => {
|
|
|
|
|
getimg() |
|
|
|
|
}) |
|
|
|
|
onBeforeUnmount(() => { |
|
|
|
|
// 组件销毁时清除定时器 |
|
|
|
|
clearInterval(intervalId.value) |
|
|
|
|
// 组件销毁时清除定时器 |
|
|
|
|
intervalId.value && clearInterval(intervalId.value) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
</script> |
|
|
|
|
<style lang="scss" scoped> |
|
|
|
|
.expired-text { |
|
|
|
|