diff --git a/src/assets/images/loadingFaild.png b/src/assets/images/loadingFaild.png new file mode 100644 index 0000000..ee52460 Binary files /dev/null and b/src/assets/images/loadingFaild.png differ diff --git a/src/views/login.vue b/src/views/login.vue index 9942243..467745f 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -34,7 +34,24 @@ function getMachineId() { } } -const form = ref({account: null, password: '', token: '', machineId: machineId1.value}) +const form = ref({account: null, password: '', token: '', machineId: machineId1.value, code: '', uuid: ''}) +const captchaUrl = ref('') + +// 获取验证码 +const getCaptcha = async () => { + try { + const res = await request({ + url: '/admin/captchaImage', + method: 'get' + }) + if (res.code === 200) { + captchaUrl.value = "data:image/gif;base64," + res.img + form.value.uuid = res.uuid + } + } catch (error) { + console.error('获取验证码失败', error) + } +} const adminRoleId = ref(null) @@ -64,7 +81,7 @@ const login = async function () { // 存储用户信息 adminStore.setAdminData(result.data) - + // 本页面使用 adminRoleId adminRoleId.value = result.data.roleId @@ -97,13 +114,16 @@ const login = async function () { } else { form.value.password = '' form.value.account = '' + form.value.code = '' ElMessage.error(result.msg) loading.value = false //登录失败时重置loading状态 + getCaptcha() } } catch (error) { console.log('请求失败', error) ElMessage.error('登录失败,请检查账号密码') loading.value = false // 发生异常时重置loading状态 + getCaptcha() } } //获取菜单树 @@ -161,13 +181,15 @@ const selectMarket = async function () { onMounted(() => { getMachineId() - + getCaptcha() })