+
@@ -9,8 +10,9 @@
diff --git a/src/router/index.ts b/src/router/index.ts
index fe4bff1..c01a98d 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -45,6 +45,8 @@ const routes = [
const router = createRouter({
history: createWebHistory(),
routes,
+ linkActiveClass: 'active',
+ linkExactActiveClass: 'active',
});
router.beforeEach((to, from, next) => {
diff --git a/src/store/index.ts b/src/store/index.ts
index b4a2dcf..df27d35 100644
--- a/src/store/index.ts
+++ b/src/store/index.ts
@@ -1,6 +1,7 @@
import { createLogger, createStore } from 'vuex'
import authModule from './modules/auth.module.ts';
import alertModule from './modules/alert.module.ts';
+import requestModule from './modules/request.module.ts';
const isDev = process.env.NODE_ENV === 'development';
@@ -11,6 +12,7 @@ const store = createStore({
modules: {
auth: authModule,
alert: alertModule,
+ request: requestModule
},
})
diff --git a/src/store/modules/request.module.ts b/src/store/modules/request.module.ts
new file mode 100644
index 0000000..1832469
--- /dev/null
+++ b/src/store/modules/request.module.ts
@@ -0,0 +1,51 @@
+import { requestApi } from '@/api/request.ts';
+import type { Module } from 'vuex';
+import authModule from './auth.module.ts';
+
+type Request = string;
+
+type State = {
+ requests: Request[];
+};
+
+type SetRequestsPayload = {
+ requests: State['requests']
+}
+
+type AddRequestsPayload = {
+ request: Request
+}
+
+const requestModule: Module
= {
+ namespaced: true,
+ state: {
+ requests: []
+ },
+ mutations: {
+ setRequests: (state, payload: SetRequestsPayload) => {
+ const { requests } = payload;
+ state.requests = requests
+ },
+
+ addRequest: (state, payload: AddRequestsPayload) => {
+ const { request } = payload;
+ state.requests.push(request)
+ }
+ },
+ actions:{
+ create: async (injectee, payload) => {
+ const { dispatch, commit } = injectee;
+
+ const token = authModule.state.token;
+ try {
+ const { data } = await requestApi.post(`/requests.json?auth=${token}`, payload)
+ commit('addRequest', {...payload, id: data.name})
+ await dispatch('alert/setAlert', {message: 'Заявка успешно создана', type: 'primary', title: 'Успех', time: 5000}, {root: true})
+ } catch (e) {
+ await dispatch('alert/setAlert', {message: 'Ошибка при попытке создать заявку', type: 'danger', title: 'Ошибка', time: 5000}, {root: true})
+ }
+ }
+ }
+}
+
+export default requestModule;
diff --git a/src/views/HomePage.vue b/src/views/HomePage.vue
index e9f25de..f4b551a 100644
--- a/src/views/HomePage.vue
+++ b/src/views/HomePage.vue
@@ -1,16 +1,77 @@
-
-
Home
+
+
+
+
+
+
+
+
+
+
-
-