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:
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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`,
|
||||
|
||||
|
||||
@@ -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: '登录',
|
||||
|
||||
17
frontend/vben/src/router/menus/modules/about.ts
Normal file
17
frontend/vben/src/router/menus/modules/about.ts
Normal 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
|
||||
@@ -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'),
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user