1
0
mirror of https://github.com/fumiama/paper-manager.git synced 2026-06-08 17:40:23 +08:00

finish register

This commit is contained in:
源文雨
2023-03-14 15:32:56 +08:00
parent 4553be7c8a
commit 77e79facd9
12 changed files with 168 additions and 65 deletions

View File

@@ -11,7 +11,16 @@ export interface LoginParams {
*/
export interface ResetPasswordParams {
username: string
phonenum: string
mobile: string
}
/**
* @description: Register interface parameters
*/
export interface RegisterParams {
username: string
mobile: string
password: string
}
export interface RoleInfo {
@@ -35,6 +44,13 @@ export interface ResetPasswordResultModel {
msg: string
}
/**
* @description: Register interface return value
*/
export interface RegisterResultModel {
msg: string
}
/**
* @description: Get user information return value
*/

View File

@@ -4,7 +4,9 @@ import {
LoginResultModel,
GetUserInfoModel,
ResetPasswordParams,
RegisterParams,
ResetPasswordResultModel,
RegisterResultModel,
} from './model/userModel'
import { ErrorMessageMode } from '/#/axios'
@@ -13,6 +15,7 @@ enum Api {
Login = '/login',
Logout = '/logout',
ResetPassword = '/resetPassword',
Register = '/register',
GetUserInfo = '/getUserInfo',
GetPermCode = '/getPermCode',
TestRetry = '/testRetry',
@@ -48,6 +51,21 @@ export function resetPasswordApi(params: ResetPasswordParams, mode: ErrorMessage
)
}
/**
* @description: register api
*/
export function registerApi(params: RegisterParams, mode: ErrorMessageMode = 'modal') {
return defHttp.post<RegisterResultModel>(
{
url: Api.Register,
params,
},
{
errorMessageMode: mode,
},
)
}
/**
* @description: getUserInfo
*/

View File

@@ -2,9 +2,6 @@ export enum RoleEnum {
// super admin, all permission granted
SUPER = 'super',
// can only create / delete account of normal users
ACCOUNT_MANAGER = 'accmgr',
// add / del files + USER's permission
FILE_MANAGER = `filemgr`,

View File

@@ -14,7 +14,7 @@ export default {
errMsg404: '网络请求错误, 未找到该资源!',
errMsg405: '网络请求错误, 请求方法未允许!',
errMsg408: '网络请求超时!',
errMsg500: '服务器错误, 请联系管理员!',
errMsg500: '服务器错误, 请联系课程组长!',
errMsg501: '网络未实现!',
errMsg502: '网络错误!',
errMsg503: '服务不可用, 服务器暂时过载或维护!',
@@ -63,7 +63,7 @@ export default {
signInTitle: '电子科技大学试卷管理系统',
signInDesc: '{0}安, 祝您工作顺利',
policy: '我同意xxx隐私政策',
policy: '我同意将填写的信息上传至服务器并使课程组长知晓',
scanSign: `扫码后点击"确认", 即可完成登录`,
loginButton: '登录',

View File

@@ -0,0 +1,17 @@
import type { MenuModule } from '/@/router/types'
import { t } from '/@/hooks/web/useI18n'
const menu: MenuModule = {
orderNo: 100,
menu: {
name: t('routes.dashboard.about'),
path: '/about',
children: [
{
path: 'index',
name: t('routes.dashboard.about'),
},
],
},
}
export default menu

View File

@@ -70,7 +70,7 @@
loading.value = true
const { msg } = await resetPasswordApi({
username: data.account,
phonenum: data.mobile,
mobile: data.mobile,
} as ResetPasswordParams)
notification.info({
message: t('sys.login.forgetFormTitle'),

View File

@@ -90,7 +90,7 @@
import { useUserStore } from '/@/store/modules/user'
import { LoginStateEnum, useLoginState, useFormRules, useFormValid } from './useLogin'
import { useDesign } from '/@/hooks/web/useDesign'
import { onKeyStroke } from '@vueuse/core'
// import { onKeyStroke } from '@vueuse/core'
const ACol = Col
const ARow = Row
@@ -115,7 +115,7 @@
const { validForm } = useFormValid(formRef)
onKeyStroke('Enter', handleLogin)
// onKeyStroke('Enter', handleLogin)
const getShow = computed(() => unref(getLoginState) === LoginStateEnum.LOGIN)

View File

@@ -18,14 +18,14 @@
class="fix-auto-fill"
/>
</FormItem>
<FormItem name="sms" class="enter-x">
<!--<FormItem name="sms" class="enter-x">
<CountdownInput
size="large"
class="fix-auto-fill"
v-model:value="formData.sms"
:placeholder="t('sys.login.smsCode')"
/>
</FormItem>
</FormItem>-->
<FormItem name="password" class="enter-x">
<StrengthMeter
size="large"
@@ -56,6 +56,7 @@
block
@click="handleRegister"
:loading="loading"
:disabled="!isFormDataFull()"
>
{{ t('sys.login.registerButton') }}
</Button>
@@ -70,9 +71,12 @@
import LoginFormTitle from './LoginFormTitle.vue'
import { Form, Input, Button, Checkbox } from 'ant-design-vue'
import { StrengthMeter } from '/@/components/StrengthMeter'
import { CountdownInput } from '/@/components/CountDown'
// import { CountdownInput } from '/@/components/CountDown'
import { registerApi } from '/@/api/sys/user'
import { RegisterParams } from '/@/api/sys/model/userModel'
import { useI18n } from '/@/hooks/web/useI18n'
import { useLoginState, useFormRules, useFormValid, LoginStateEnum } from './useLogin'
import { useMessage } from '/@/hooks/web/useMessage'
const FormItem = Form.Item
const InputPassword = Input.Password
@@ -87,7 +91,7 @@
password: '',
confirmPassword: '',
mobile: '',
sms: '',
// sms: '',
policy: false,
})
@@ -96,9 +100,45 @@
const getShow = computed(() => unref(getLoginState) === LoginStateEnum.REGISTER)
const { notification } = useMessage()
async function handleRegister() {
const form = unref(formRef)
if (!form) return
const data = await validForm()
if (!data) return
console.log(data)
try {
loading.value = true
const { msg } = await registerApi({
username: data.account,
mobile: data.mobile,
password: data.password,
} as RegisterParams)
notification.info({
message: t('sys.login.signUpFormTitle'),
description: msg,
duration: 10,
})
} catch (error) {
notification.error({
message: (error as Error).name,
description: (error as Error).message,
duration: 3,
})
} finally {
loading.value = false
form.resetFields()
handleBackLogin()
}
}
function isFormDataFull(): boolean {
return (
formData.account != '' &&
formData.password != '' &&
formData.confirmPassword != '' &&
formData.mobile != '' &&
formData.policy
)
}
</script>