CustomerCreate.vue 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <script setup>
  2. import { useForm } from '@/composables/useForm'
  3. import AppInputText from '@/components/AppInputText.vue'
  4. const form = useForm({
  5. name: null,
  6. address: null,
  7. phone: null,
  8. npwp: null,
  9. })
  10. const onSubmit = () => {
  11. form.post(route('customers.store'), {
  12. onSuccess: () => form.reset(),
  13. })
  14. }
  15. </script>
  16. <template>
  17. <div class="grid">
  18. <div class="col-12 md:col-6">
  19. <AppInputText
  20. label="Nama"
  21. placeholder="nama"
  22. :error="form.errors.name"
  23. v-model="form.name"
  24. />
  25. </div>
  26. <div class="col-12 md:col-6">
  27. <AppInputText
  28. label="Alamat"
  29. placeholder="alamat"
  30. :error="form.errors.address"
  31. v-model="form.address"
  32. />
  33. </div>
  34. <div class="col-12 md:col-6">
  35. <AppInputText
  36. label="No HP"
  37. placeholder="no hp"
  38. type="number"
  39. :error="form.errors.phone"
  40. v-model="form.phone"
  41. />
  42. </div>
  43. <div class="col-12 md:col-6">
  44. <AppInputText
  45. label="NPWP"
  46. placeholder="npwp"
  47. type="number"
  48. :error="form.errors.npwp"
  49. v-model="form.npwp"
  50. />
  51. </div>
  52. </div>
  53. <div class="flex flex-column md:flex-row justify-content-end">
  54. <Button
  55. label="Simpan"
  56. icon="pi pi-check"
  57. class="p-button-outlined"
  58. :disabled="form.processing"
  59. @click="onSubmit"
  60. />
  61. </div>
  62. </template>