Create.vue 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <script setup>
  2. import AppInputText from '@/components/AppInputText.vue'
  3. import DashboardLayout from '@/layouts/Dashboard/DashboardLayout.vue'
  4. const props = defineProps({
  5. number: String,
  6. })
  7. const form = useForm({
  8. number: props.number,
  9. name: null,
  10. unit: null,
  11. })
  12. const onSubmit = () => {
  13. form.post(route('products.store'), { onSuccess: () => form.reset() })
  14. }
  15. </script>
  16. <template>
  17. <DashboardLayout title="Tambah Produk">
  18. <div class="grid">
  19. <div class="col-12 lg:col-8">
  20. <Card>
  21. <template #title> Tambah Produk </template>
  22. <template #content>
  23. <div class="grid">
  24. <div class="col-12 md:col-6">
  25. <AppInputText
  26. disabled
  27. label="Nomor Produk"
  28. placeholder="nomor produk"
  29. :error="form.errors.number"
  30. v-model="form.number"
  31. />
  32. </div>
  33. <div class="col-12 md:col-6">
  34. <AppInputText
  35. label="Nama"
  36. placeholder="nama"
  37. :error="form.errors.name"
  38. v-model="form.name"
  39. />
  40. </div>
  41. <div class="col-12 md:col-6">
  42. <AppInputText
  43. label="Satuan"
  44. placeholder="satuan"
  45. :error="form.errors.unit"
  46. v-model="form.unit"
  47. />
  48. </div>
  49. </div>
  50. <div class="flex flex-column md:flex-row justify-content-end">
  51. <Button
  52. label="Simpan"
  53. icon="pi pi-check"
  54. class="p-button-outlined"
  55. :disabled="form.processing"
  56. @click="onSubmit"
  57. />
  58. </div>
  59. </template>
  60. </Card>
  61. </div>
  62. </div>
  63. </DashboardLayout>
  64. </template>