| | |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { validUsername } from '@/utils/validate'; |
| | | import { defineComponent } from 'vue'; |
| | | import type { FormItemRule } from 'element-plus'; |
| | | import { ElMessage, type FormItemRule } from 'element-plus'; |
| | | import type { IForm } from '@/types/element-plus'; |
| | | import store from '@/store'; |
| | | |
| | |
| | | } |
| | | }; |
| | | const validatePassword: FormItemRule['validator'] = (_rule, value, callback) => { |
| | | if (value.length < 6) { |
| | | callback(new Error('请输入密码,至少6位')); |
| | | if (value.length < 1) { |
| | | callback(new Error('请输入密码,至少1位')); |
| | | } else { |
| | | callback(); |
| | | } |
| | |
| | | return { |
| | | loginForm: { |
| | | username: 'admin', |
| | | password: '111111' |
| | | password: '1' |
| | | }, |
| | | loginRules: { |
| | | username: [{ required: true, trigger: 'blur', validator: validateUsername }], |
| | |
| | | } else if (this.loginForm.password === '') { |
| | | (this.$refs.password as HTMLElement).focus(); |
| | | } |
| | | this.themeChange('blue'); |
| | | this.themeChange('blue-theme'); |
| | | }, |
| | | unmounted() { |
| | | // window.removeEventListener('storage', this.afterQRScan) |
| | |
| | | this.loading = true; |
| | | store.user().login(this.loginForm) |
| | | .then(() => { |
| | | this.loading = false; |
| | | this.$router.push({ path: this.redirect || '/', query: this.otherQuery }); |
| | | }).catch((error) => { |
| | | this.loading = false; |
| | | }) |
| | | .catch(() => { |
| | | this.loading = false; |
| | | // 请求失败,处理错误 |
| | | if (error.message === 'Network Error') { |
| | | // 如果是网络错误,显示中文消息 |
| | | ElMessage({ |
| | | message: '网络错误,请检查您的网络连接或服务器状态。', |
| | | type: 'error' |
| | | }); |
| | | } else { |
| | | // 其他类型的错误,可以根据需要处理 |
| | | ElMessage({ |
| | | message: error, |
| | | type: 'warning' |
| | | }); |
| | | } |
| | | }).finally(() => { |
| | | resolve(); |
| | | }); |