SupplierCreate.vue 1.6KB

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