11<template >
2- <div class =" flex-grow-1 mt-2 px-3" >
3- <h3 class =" mb-4" >Személyes adatok</h3 >
2+ <div class =" flex-grow-1 mt-2 px-3 pb-3" >
3+ <base-dialog
4+ :show =" !!sureDelete"
5+ title =" Biztosan törölni akarod?"
6+ type =" danger"
7+ close-text =" Mégse"
8+ btn =" outline-warning"
9+ btn2-text =" Törlés"
10+ btn2-type =" outline-danger"
11+ reverse
12+ @close =" sureDelete = 0"
13+ @send =" del"
14+ ></base-dialog >
15+ <h3 v-if =" !imported" class =" mb-4" >Személyes adatok</h3 >
416 <div
517 v-if =" showErr"
618 class =" alert alert-dismissible fade position-absolute z-100"
6880 Telefonszám
6981 </base-input >
7082 <base-select
71- v-if =" myProfile. role > 1"
83+ v-if =" role > 1"
7284 v-model =" editProfile.role"
7385 icon =" user-tag"
74- :nums =" myProfile.role"
86+ :nums =" id ? role - 1 : myProfile.role"
7587 :values =" roleEnum"
7688 :def =" myProfile.role"
7789 class =" w-75 my-3"
8294 <base-button type =" warning" class =" w-25 align-self-center" @click =" megse" >
8395 Mégse
8496 </base-button >
97+ <base-button
98+ v-if =" !imported"
99+ type =" outline-danger"
100+ class =" w-25 align-self-center"
101+ @click =" sureDelete = 1"
102+ >
103+ Fiók törlése
104+ </base-button >
85105 <base-button type =" primary" submit class =" w-25 align-self-center" >Mentés</base-button >
86106 </div >
87107 </form >
90110
91111<script >
92112import axios from ' @/config/axios.js' ;
113+ import rolesEnum from ' @/config/role.enum.js' ;
93114import { ref , watch } from ' vue' ;
94115import { useStore } from ' vuex' ;
95116
96117export default {
97118 name: ' Profile' ,
98- setup () {
119+ props: { id: { type: String , default: ' ' }, imported: { type: Boolean , required: false } },
120+ emits: [' close' ],
121+ setup (props , { emit }) {
99122 const store = useStore ();
123+ const sureDelete = ref (0 );
100124 const error = ref (' ' );
101125 const showErr = ref (' ' );
102- const roleEnum = [ ' Vendég ' , ' Felhasználó ' , ' Szerkesztő ' , ' Moderátor ' , ' Admin ' , ' Superuser ' ] ;
126+ const roleEnum = rolesEnum ;
103127 const myProfile = ref ();
104128 const editProfile = ref ();
105129 function getFromServer () {
106- axios .get (' /users/whoami' ).then (res => {
130+ axios .get (` /users/whoami/ ${ props . id } ` ).then (res => {
107131 myProfile .value = { ... res .data , password: ' ' };
108132 if (! myProfile .value .phoneNumber ) myProfile .value .phoneNumber = ' ' ;
109133 editProfile .value = JSON .parse (JSON .stringify (myProfile .value ));
110134 });
111135 }
112136 function save () {
113137 axios
114- .patch (' /users' , editProfile .value )
138+ .patch (` /users/ ${ props . id } ` , editProfile .value )
115139 .then (({ data }) => {
116- store .dispatch (' changeAuth' , { token: data .accessToken });
140+ if ( ! props . id ) store .dispatch (' changeAuth' , { token: data .accessToken });
117141 myProfile .value = JSON .parse (JSON .stringify (editProfile .value ));
118142 error .value = ' Sikeres mentés!' ;
119143 setTimeout (() => {
120144 error .value = ' ' ;
145+ if (props .imported ) emit (' close' );
121146 }, 3000 );
122147 })
123148 .catch (err => {
@@ -129,7 +154,14 @@ export default {
129154 }
130155 function megse () {
131156 editProfile .value = JSON .parse (JSON .stringify (myProfile .value ));
157+ if (props .imported ) emit (' close' );
158+ }
159+ function del () {
160+ axios .delete (' /users' ).then (() => {
161+ store .dispatch (' logout' );
162+ });
132163 }
164+ // TODO Mentés után a select nem kékül vissza
133165
134166 watch (error, val => {
135167 const timer = val ? 0 : 250 ;
@@ -139,7 +171,23 @@ export default {
139171 });
140172
141173 getFromServer ();
142- return { myProfile, getFromServer, save, roleEnum, editProfile, error, megse, showErr };
174+ return {
175+ myProfile,
176+ getFromServer,
177+ save,
178+ editProfile,
179+ roleEnum,
180+ error,
181+ megse,
182+ showErr,
183+ sureDelete,
184+ del,
185+ };
186+ },
187+ computed: {
188+ role () {
189+ return this .$store .getters [' getRole' ];
190+ },
143191 },
144192};
145193 </script >
0 commit comments