diff --git a/src/components/CardUser.vue b/src/components/CardUser.vue index 981ee25..495f47e 100644 --- a/src/components/CardUser.vue +++ b/src/components/CardUser.vue @@ -15,6 +15,8 @@ import { getDateMonthDay } from '../helpers/date_formats'; }) + defineEmits(['set-user']) + const handleDelete = () => { Swal.fire({ title: 'Eliminación de usuario!', @@ -84,7 +86,8 @@ import { getDateMonthDay } from '../helpers/date_formats'; Editar + import { computed, onMounted, reactive, ref } from 'vue'; + import CustomInput from './ui/CustomInput.vue'; + import TruckTypes from './ui/TruckTypes.vue'; + import Segments from './ui/Segments.vue'; + import States from './ui/States.vue'; + import Cities from './ui/Cities.vue'; + import Spiner from './ui/Spiner.vue'; +import { validateEmail } from '../helpers/validations'; + + const props = defineProps({ + user: { + type: Object, + required: false + } + }); + + onMounted(() => { + if(props.user) { + console.log(props.user) + userForm.name = props.user.first_name; + userForm.last_name = props.user.last_name; + userForm.email = props.user.email; + userForm.phone = props.user.phone; + userForm.phone2 = props.user.phone2; + userForm.job_role = props.user.job_role; + userForm.categories = props.user.categories; + userForm.user_city = props.user.user_city.map(m =>{ + return { city_name: m }; + }); + userForm.user_state = props.user.user_state.map(m =>{ + return { state_name:m }; + }); + userForm.truck_type = props.user.truck_type.map(m =>{ + return { meta_value:m }; + }); + userForm.user_description = props.user.user_description; + } else { + Object.assign(userForm, initState); + } + }) + + const initState = { + name: '', + last_name: '', + email: '', + phone: '', + phone2: '', + job_role: '', + categories: [], + user_city: [], + user_state: [], + truck_type: [], + user_description: '', + }; + + const userForm = reactive({ + ...initState + }) + + const errors = ref({ + name: null, + last_name: null, + email: null, + phone: null, + }) + + const formRef = ref(null); + const loading = ref(false); + + const title = computed(() => { + return (props.user) ? 'Editar usuario' : 'Crear usuario'; + }); + + defineEmits(['reset-user']); + + const saveUser = () => { + validations() + + console.log(errors); + + if(errors.value.name || errors.value.last_name || errors.value.email || errors.value.phone){ + console.log('Hay errores'); + return; + } else { + console.log(userForm); + } + } + + const validations = () => { + errors.value = { + name: userForm.name.length <= 4 ? 'Ingrese nombre' : null, + last_name: userForm.name.length <= 1 ? 'Ingrese apellido' : null, + email: !validateEmail(userForm.email) ? 'Ingrese email valido' : null, + phone: userForm.phone.length < 10 ? 'Ingrese numero teléfonico valido' : null, + }; + } + + + + + + + + {{ title }} + + × + + + + + + + + + + + Segmento + + + + + Tipo de transporte que utiliza + + + + + Locaciones de carga por estado + + + + + Locaciones de carga por municipio + + + + + Información adicional del usuario: + + + + + Guardar + + + + + + + + + + \ No newline at end of file diff --git a/src/views/UsersView.vue b/src/views/UsersView.vue index fdda933..ca2dfea 100644 --- a/src/views/UsersView.vue +++ b/src/views/UsersView.vue @@ -3,6 +3,7 @@ import Spiner from '../components/ui/Spiner.vue'; import CardUser from '../components/CardUser.vue'; import { useCompanyStore } from '../stores/company'; + import CreateUserModal from '../components/CreateUserModal.vue'; const companyStore = useCompanyStore(); @@ -10,6 +11,9 @@ getInitData(); }); + const currentUser = ref(null); + const openModal = ref(false); + const getInitData = async() => { console.log('callll') loading.value = true; @@ -19,17 +23,43 @@ const loading = ref(false); + const handleSetCurrentUser = (user) => { + openModal.value = true; + currentUser.value = user; + } + + const handleResetCurrentUser = () => { + openModal.value = false; + currentUser.value = null; + } + + Usuarios + + + Agregar usuario + +