Guest User

Untitled

a guest
Jan 22nd, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.65 KB | None | 0 0
  1. <template>
  2. <v-flex lg10>
  3. <v-card class="elevation-12">
  4. <v-alert v-if="message"
  5. :value="true"
  6. :type="typeMessage"
  7. >
  8. {{message}}
  9. </v-alert>
  10. <v-toolbar dark color="primary">
  11. <v-toolbar-title>User Edit</v-toolbar-title>
  12. </v-toolbar>
  13. <v-card-text>
  14. <v-container grid-list-lg>
  15. <v-layout row wrap>
  16. <v-flex md5 offset-md1>
  17. <v-text-field prepend-icon="person"
  18. v-model="user.firstname" label="First Name"
  19. ></v-text-field>
  20. </v-flex>
  21. <v-flex md5>
  22. <v-text-field
  23. v-model="user.lastname" label="Last Name"
  24. ></v-text-field>
  25. </v-flex>
  26. <v-flex md6 offset-md1>
  27. <v-text-field prepend-icon="email"
  28. v-model="user.email" label="Email"
  29. ></v-text-field>
  30. </v-flex>
  31. <v-flex md4>
  32. <v-text-field prepend-icon="phone" mask="(###)-##-####"
  33. v-model="user.phone" label="Phone"
  34. ></v-text-field>
  35. </v-flex>
  36. <v-flex md5 offset-md1>
  37. <v-text-field prepend-icon="person"
  38. v-model="user.username" label="Username"
  39. ></v-text-field>
  40. </v-flex>
  41. <v-flex md5 offset-1>
  42. <v-text-field prepend-icon="lock"
  43. label="Password" hint="At least 8 characters"
  44. :append-icon="e1 ? 'visibility' : 'visibility_off'"
  45. @click:append="() => (e1 = !e1)"
  46. :type="e1 ? 'password' : 'text'"
  47. v-model="user.password"
  48. counter
  49. ></v-text-field>
  50. </v-flex>
  51. </v-layout>
  52. </v-container>
  53. </v-card-text>
  54. <v-card-actions>
  55. <v-btn @click="resetForm">Cancel</v-btn>
  56. <v-spacer v-if="showList"></v-spacer>
  57. <v-btn v-if="showList" @click="goView('list')">Go List Users</v-btn>
  58. <v-spacer></v-spacer>
  59. <v-btn @click="updateUser" color="primary">Update Info</v-btn>
  60. </v-card-actions>
  61. </v-card>
  62. </v-flex>
  63. </template>
  64.  
  65. <script>
  66.  
  67. import { mapState, mapGetters } from 'vuex';
  68. import _ from 'lodash';
  69.  
  70. export default {
  71. data() {
  72. return {
  73. e1: true,
  74. showList: false,
  75. };
  76. },
  77. computed: {
  78. ...mapState({
  79. user: state => _.cloneDeep(state.userManagement.userSelected),
  80. }),
  81. ...mapGetters({
  82. typeMessage: 'getTypeMessage',
  83. message: 'getMessage',
  84. }),
  85. },
  86. methods: {
  87. resetForm() {
  88. this.$store.dispatch('cancelUpdateUser', this.user.ID);
  89. },
  90. updateUser() {
  91. // this.$store.dispatch('updateUser', this.user);
  92. if (localStorage.getItem('accessToken') !== undefined && localStorage.getItem('accessToken') !== null) {
  93. this.$store.dispatch('updateUser', this.user)
  94. .then(() => {
  95. this.resetForm();
  96. })
  97. .catch(() => {
  98. // eslint-disable-next-line
  99. console.log('Error');
  100. });
  101. } else {
  102. this.$router.push({ name: 'Login', params: { successAlert: true } });
  103. }
  104. },
  105. goView(item) {
  106. this.$store.dispatch('updateTypeMessage', 'info');
  107. this.$store.dispatch('updateMessage', '');
  108. this.$store.dispatch('openSelectedView', item);
  109. },
  110. },
  111. created() {
  112. if (localStorage.getItem('accessToken') !== undefined && localStorage.getItem('accessToken') !== null) {
  113. this.showList = true;
  114. }
  115. },
  116. };
  117. </script>
  118.  
  119. import _ from 'lodash';
  120. import manejadorservicio from '@/services/manejadorservicio';
  121.  
  122. export default {
  123. state: {
  124. currentComponent: 'list',
  125. users: [],
  126. userSelected: {
  127. firstname: '',
  128. lastname: '',
  129. email: '',
  130. phone: '',
  131. username: '',
  132. password: '',
  133. },
  134. typeMessage: 'info',
  135. message: '',
  136. },
  137. getters: {
  138. getUsers(state) {
  139. return state.users;
  140. },
  141. getUserSelected(state) {
  142. return state.userSelected;
  143. },
  144. getTypeMessage(state) {
  145. return state.typeMessage;
  146. },
  147. getMessage(state) {
  148. return state.message;
  149. },
  150. },
  151. mutations: {
  152. updateUsers(state, payload) {
  153. state.users = payload;
  154. },
  155. updateUserSelected(state, payload) {
  156. state.userSelected = payload;
  157. },
  158. updateCurrentComponent(state, { componentName }) {
  159. state.currentComponent = componentName;
  160. },
  161. updateTypeMessage(state, payload) {
  162. state.typeMessage = payload;
  163. },
  164. updateMessage(state, payload) {
  165. state.message = payload;
  166. },
  167. cancelUpdateUser(state, payload) {
  168. // eslint-disable-next-line
  169. console.log('clonado: ',state.userSelected,' clon ',_.cloneDeep(state.users.filter(m => m.ID === (payload))[0]), ' id',payload);
  170. // state.userSelected = _.cloneDeep(state.users.filter(m => m.ID === (payload))[0]);
  171. state.userSelected = _.cloneDeep(state.userSelected);
  172. },
  173. },
  174. actions: {
  175. clearUpdateUser({ commit }) {
  176. commit('clearUpdateUser');
  177. },
  178. cancelUpdateUser({ commit }, payload) {
  179. commit('cancelUpdateUser', payload);
  180. },
  181. fetchUserSelected({ commit }, payload) {
  182. manejadorservicio.FetchUserSelected(payload.ID)
  183. .then((resp) => {
  184. commit('updateCurrentComponent', { componentName: 'edit' });
  185. commit('updateUserSelected', resp.body);
  186. })
  187. .catch(() => {
  188. // eslint-disable-next-line
  189. console.log('Error');
  190. });
  191. },
  192. fetchAllUsers({ commit }) {
  193. manejadorservicio.FetchAllUsers()
  194. .then((resp) => {
  195. commit('updateUsers', resp.body);
  196. })
  197. .catch(() => {
  198. // eslint-disable-next-line
  199. console.log('Error');
  200. });
  201. },
  202. },
  203. };
Add Comment
Please, Sign In to add comment