Last active
June 30, 2020 18:12
-
-
Save Juhlinus/6d86eb95435607f7959307c659ac0363 to your computer and use it in GitHub Desktop.
Organizations/Create.vue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<template> | |
<div> | |
<h1 class="mb-8 font-bold text-3xl"> | |
<inertia-link class="text-indigo-400 hover:text-indigo-600" :href="route('organizations')">Organizations</inertia-link> | |
<span class="text-indigo-400 font-medium">/</span> Create | |
</h1> | |
<div class="bg-white rounded shadow overflow-hidden max-w-3xl"> | |
<form @submit.prevent="submit"> | |
<div class="p-8 -mr-6 -mb-8 flex flex-wrap"> | |
<text-input v-model="form.name" :errors="$page.errors.name" class="pr-6 pb-8 w-full lg:w-1/2" label="Name" /> | |
<text-input v-model="form.email" :errors="$page.errors.email" class="pr-6 pb-8 w-full lg:w-1/2" label="Email" /> | |
<text-input v-model="form.phone" :errors="$page.errors.phone" class="pr-6 pb-8 w-full lg:w-1/2" label="Phone" /> | |
<text-input v-model="form.address" :errors="$page.errors.address" class="pr-6 pb-8 w-full lg:w-1/2" label="Address" /> | |
<text-input v-model="form.city" :errors="$page.errors.city" class="pr-6 pb-8 w-full lg:w-1/2" label="City" /> | |
<text-input v-model="form.region" :errors="$page.errors.region" class="pr-6 pb-8 w-full lg:w-1/2" label="Province/State" /> | |
<select-input v-model="form.country" :errors="$page.errors.country" class="pr-6 pb-8 w-full lg:w-1/2" label="Country"> | |
<option :value="null" /> | |
<option value="CA">Canada</option> | |
<option value="US">United States</option> | |
</select-input> | |
<text-input v-model="form.postal_code" :errors="$page.errors.postal_code" class="pr-6 pb-8 w-full lg:w-1/2" label="Postal code" /> | |
</div> | |
<div class="px-8 py-4 bg-gray-100 border-t border-gray-200 flex justify-end items-center"> | |
<loading-button :loading="sending" class="btn-indigo" type="submit">Create Organization</loading-button> | |
</div> | |
</form> | |
</div> | |
</div> | |
</template> | |
<script> | |
import Layout from '@/Shared/Layout' | |
import LoadingButton from '@/Shared/LoadingButton' | |
import SelectInput from '@/Shared/SelectInput' | |
import TextInput from '@/Shared/TextInput' | |
export default { | |
metaInfo: { title: 'Create Organization' }, | |
layout: Layout, | |
components: { | |
LoadingButton, | |
SelectInput, | |
TextInput, | |
}, | |
remember: 'form', | |
data() { | |
return { | |
sending: false, | |
form: { | |
name: null, | |
email: null, | |
phone: null, | |
address: null, | |
city: null, | |
region: null, | |
country: null, | |
postal_code: null, | |
}, | |
} | |
}, | |
methods: { | |
submit() { | |
this.sending = true | |
this.$inertia.post(this.route('organizations.store'), this.form) | |
.then(() => this.sending = false) | |
}, | |
}, | |
watch: { | |
form: { | |
handler(value) { | |
this.$inertia.post(this.route('organizations.store'), {...this.form, validate: true}); | |
}, | |
deep: true, | |
} | |
} | |
} | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment