Create.vue 2.1KB

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