diff --git a/src/App.js b/src/App.js
index 49ee5eb..9b81ac1 100644
--- a/src/App.js
+++ b/src/App.js
@@ -6,6 +6,7 @@ import {
import {ConfigProvider} from 'antd'
import locale from "antd/lib/locale/ru_RU"
import Login from './pages/Login'
+import Register from './pages/Register'
import Main from './pages/Main'
import { OpenAPI } from './services/api'
import { PrivateRoute } from './components/Private'
@@ -21,6 +22,9 @@ export default function App() {
+
+
+
diff --git a/src/pages/Login.jsx b/src/pages/Login.jsx
index cd144f6..8ac6878 100644
--- a/src/pages/Login.jsx
+++ b/src/pages/Login.jsx
@@ -3,8 +3,9 @@ import { UserOutlined, LockOutlined } from '@ant-design/icons'
import logo from '../images/logo_32.png'
import Loader from '../components/Loader'
import { useState } from 'react'
-import { useHistory } from "react-router-dom";
+import {Link, useHistory} from "react-router-dom";
import { AuthService, OpenAPI } from '../services/api/'
+import '../styles/index.css'
const { login } = AuthService
@@ -61,8 +62,9 @@ export default function Login() {
({
validator() {
return showError(isErrorVisible, new Error('Неправильные логин или пароль!'))
@@ -83,7 +85,7 @@ export default function Login() {
({
validator() {
return showError(isErrorVisible)
@@ -102,10 +104,17 @@ export default function Login() {
-
-
+
+
+
+
+
+
+ Отправить заявку на регистрацию
+
+
{loader && }
diff --git a/src/pages/Register.jsx b/src/pages/Register.jsx
new file mode 100644
index 0000000..0cf87a4
--- /dev/null
+++ b/src/pages/Register.jsx
@@ -0,0 +1,297 @@
+import { Card, Form, Input, Select, Button, notification } from 'antd';
+import { UserOutlined, LockOutlined } from '@ant-design/icons'
+import logo from '../images/logo_32.png'
+import Loader from '../components/Loader'
+import { useState } from 'react'
+import { Link, useHistory } from "react-router-dom";
+import { AuthService } from '../services/api/'
+
+const openNotificationError = (message, title) => {
+ notification['error']({
+ message: title||'Ошибка',
+ description: message,
+ });
+};
+
+const { Option } = Select;
+
+const companies = [
+ { name: "ООО «Газпромнефть-Хантос» ", value: 1 },
+ { name: "АО «НафтаГаз»", value: 2 },
+ { name: "ООО «Нафтагаз Бурение»", value: 3 },
+ { name: "ООО «Газпромнефть-ННГ»", value: 4 }
+];
+
+export default function Register() {
+ const [loader, setLoader] = useState(false);
+ const [isErrorVisible, setErrorVisible] = useState(false);
+ const [selectedCompanyId, setSelectedCompanyId] = useState(companies[0].value);
+ const history = useHistory();
+ const [form] = Form.useForm();
+
+ const logoIcon =
+
+ const children = companies.map((line) => (
+
+ ));
+
+ let handleRegister = async (formData) =>{
+ formData.idCompany = +selectedCompanyId
+
+ setLoader(true)
+ try{
+ await AuthService.register(formData)
+ setLoader(false)
+ openNotificationError("Заявка на регистрацию отправлена. ")
+ history.push("/login");
+ }catch(e){
+ if(e.status === 400)
+ openNotificationError(e.message)
+ console.error(`Error ${e}`)
+
+ setErrorVisible(true)
+ form.validateFields()
+ setLoader(false)
+ }
+ }
+
+ const showError = (isErrorVisible, errorObj) => {
+ if (isErrorVisible)
+ return Promise.reject(errorObj)
+
+ return Promise.resolve()
+ }
+
+ return (
+
+ )
+}
\ No newline at end of file
diff --git a/src/services/api/models/UserDto.ts b/src/services/api/models/UserDto.ts
index c8761f9..748389f 100644
--- a/src/services/api/models/UserDto.ts
+++ b/src/services/api/models/UserDto.ts
@@ -10,6 +10,9 @@ export type UserDto = {
name?: string | null;
surname?: string | null;
patronymic?: string | null;
+ email?: string | null;
+ phone?: string | null;
+ position?: string | null;
id?: number;
idCompany?: number | null;
idRole?: number | null;
diff --git a/src/services/api/models/UserTokenDto.ts b/src/services/api/models/UserTokenDto.ts
index 6e3321d..c7a5f92 100644
--- a/src/services/api/models/UserTokenDto.ts
+++ b/src/services/api/models/UserTokenDto.ts
@@ -8,6 +8,9 @@ export type UserTokenDto = {
name?: string | null;
surname?: string | null;
patronymic?: string | null;
+ email?: string | null;
+ phone?: string | null;
+ position?: string | null;
id?: number;
companyName?: string | null;
roleName?: string | null;
diff --git a/src/styles/index.css b/src/styles/index.css
index 59c2d76..39aef5a 100644
--- a/src/styles/index.css
+++ b/src/styles/index.css
@@ -75,6 +75,10 @@ body {
vertical-align: center;
}
+.text-align-center {
+ text-align: center;
+}
+
.text-align-r-container {
width: 100%;
text-align: right;
@@ -97,3 +101,13 @@ code {
width: 100%;
}
+.login-button {
+ width: 20%;
+ margin: auto;
+}
+
+.register-button {
+ width: 50%;
+ margin: auto;
+}
+