mirror of https://github.com/fantasticit/think.git
feat: remove confirmPassword
This commit is contained in:
parent
bf0826b220
commit
fb6fdfffb5
|
@ -0,0 +1,7 @@
|
||||||
|
export const isEmail = (email) => {
|
||||||
|
return !!String(email)
|
||||||
|
.toLowerCase()
|
||||||
|
.match(
|
||||||
|
/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
|
||||||
|
);
|
||||||
|
};
|
|
@ -9,6 +9,7 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
height: calc(100% - 52px);
|
||||||
padding: 10vh 24px;
|
padding: 10vh 24px;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
|
@ -3,11 +3,13 @@ import { Author } from 'components/author';
|
||||||
import { LogoImage, LogoText } from 'components/logo';
|
import { LogoImage, LogoText } from 'components/logo';
|
||||||
import { Seo } from 'components/seo';
|
import { Seo } from 'components/seo';
|
||||||
import { useRegister, useVerifyCode } from 'data/user';
|
import { useRegister, useVerifyCode } from 'data/user';
|
||||||
|
import { isEmail } from 'helpers/validator';
|
||||||
import { useInterval } from 'hooks/use-interval';
|
import { useInterval } from 'hooks/use-interval';
|
||||||
import { useRouterQuery } from 'hooks/use-router-query';
|
import { useRouterQuery } from 'hooks/use-router-query';
|
||||||
import { useToggle } from 'hooks/use-toggle';
|
import { useToggle } from 'hooks/use-toggle';
|
||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import Router from 'next/router';
|
import Router from 'next/router';
|
||||||
|
import { emit } from 'process';
|
||||||
import React, { useCallback, useState } from 'react';
|
import React, { useCallback, useState } from 'react';
|
||||||
|
|
||||||
import styles from './index.module.scss';
|
import styles from './index.module.scss';
|
||||||
|
@ -25,7 +27,13 @@ const Page = () => {
|
||||||
const { sendVerifyCode, loading: sendVerifyCodeLoading } = useVerifyCode();
|
const { sendVerifyCode, loading: sendVerifyCodeLoading } = useVerifyCode();
|
||||||
|
|
||||||
const onFormChange = useCallback((formState) => {
|
const onFormChange = useCallback((formState) => {
|
||||||
setEmail(formState.values.email);
|
const email = formState.values.email;
|
||||||
|
|
||||||
|
if (isEmail(email)) {
|
||||||
|
setEmail(email);
|
||||||
|
} else {
|
||||||
|
setEmail(null);
|
||||||
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const { start, stop } = useInterval(() => {
|
const { start, stop } = useInterval(() => {
|
||||||
|
@ -89,6 +97,7 @@ const Page = () => {
|
||||||
<Title type="tertiary" heading={5} style={{ marginBottom: 16, textAlign: 'center' }}>
|
<Title type="tertiary" heading={5} style={{ marginBottom: 16, textAlign: 'center' }}>
|
||||||
用户注册
|
用户注册
|
||||||
</Title>
|
</Title>
|
||||||
|
|
||||||
<Form.Input
|
<Form.Input
|
||||||
noLabel
|
noLabel
|
||||||
field="name"
|
field="name"
|
||||||
|
@ -97,6 +106,7 @@ const Page = () => {
|
||||||
placeholder="输入账户名称"
|
placeholder="输入账户名称"
|
||||||
rules={[{ required: true, message: '请输入账户' }]}
|
rules={[{ required: true, message: '请输入账户' }]}
|
||||||
></Form.Input>
|
></Form.Input>
|
||||||
|
|
||||||
<Form.Input
|
<Form.Input
|
||||||
noLabel
|
noLabel
|
||||||
mode="password"
|
mode="password"
|
||||||
|
@ -106,15 +116,6 @@ const Page = () => {
|
||||||
placeholder="输入用户密码"
|
placeholder="输入用户密码"
|
||||||
rules={[{ required: true, message: '请输入密码' }]}
|
rules={[{ required: true, message: '请输入密码' }]}
|
||||||
></Form.Input>
|
></Form.Input>
|
||||||
<Form.Input
|
|
||||||
noLabel
|
|
||||||
mode="password"
|
|
||||||
field="confirmPassword"
|
|
||||||
label="密码"
|
|
||||||
style={{ width: '100%' }}
|
|
||||||
placeholder="确认用户密码"
|
|
||||||
rules={[{ required: true, message: '请再次输入密码' }]}
|
|
||||||
></Form.Input>
|
|
||||||
|
|
||||||
<Form.Input
|
<Form.Input
|
||||||
noLabel
|
noLabel
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { IsEmail, IsNotEmpty, IsOptional, IsString, MaxLength, MinLength } from 'class-validator';
|
import { IsEmail, IsNotEmpty, IsString, MaxLength, MinLength } from 'class-validator';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户注册
|
* 用户注册
|
||||||
|
@ -15,11 +15,6 @@ export class RegisterUserDto {
|
||||||
@IsNotEmpty({ message: '用户密码不能为空' })
|
@IsNotEmpty({ message: '用户密码不能为空' })
|
||||||
password: string;
|
password: string;
|
||||||
|
|
||||||
@MinLength(5, { message: '用户二次确认密码至少5个字符' })
|
|
||||||
@IsString({ message: '用户二次确认密码类型错误(正确类型为:String)' })
|
|
||||||
@IsNotEmpty({ message: '用户二次确认密码不能为空' })
|
|
||||||
confirmPassword: string;
|
|
||||||
|
|
||||||
@IsEmail({ message: '请输入正确的邮箱地址' })
|
@IsEmail({ message: '请输入正确的邮箱地址' })
|
||||||
@IsString({ message: '用户邮箱类型错误(正确类型为:String)' })
|
@IsString({ message: '用户邮箱类型错误(正确类型为:String)' })
|
||||||
@IsNotEmpty({ message: '用户邮箱不能为空' })
|
@IsNotEmpty({ message: '用户邮箱不能为空' })
|
||||||
|
|
|
@ -125,10 +125,6 @@ export class UserService {
|
||||||
throw new HttpException('该账户已被注册', HttpStatus.BAD_REQUEST);
|
throw new HttpException('该账户已被注册', HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user.password !== user.confirmPassword) {
|
|
||||||
throw new HttpException('两次密码不一致,请重试', HttpStatus.BAD_REQUEST);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (await this.userRepo.findOne({ name: user.name })) {
|
if (await this.userRepo.findOne({ name: user.name })) {
|
||||||
throw new HttpException('该账户已被注册', HttpStatus.BAD_REQUEST);
|
throw new HttpException('该账户已被注册', HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue