Create.vue 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <script setup>
  2. import { useForm, Head } from '@inertiajs/inertia-vue3'
  3. import AppButtonCreate from '@/components/AppButtonCreate.vue'
  4. import AppTextInput from '@/components/AppTextInput.vue'
  5. import AppSelectInput from '@/components/AppSelectInput.vue'
  6. import DefaultLayout from '@/layouts/DefaultLayout.vue'
  7. defineProps({
  8. roles: Array,
  9. outlets: Array,
  10. })
  11. const form = useForm({
  12. name: '',
  13. phone: '',
  14. email: '',
  15. address: '',
  16. gender: '',
  17. outlet_id: '',
  18. role_id: '',
  19. })
  20. const submit = () => {
  21. form.post(route('users.store'))
  22. }
  23. </script>
  24. <template>
  25. <Head title="Tambah User" />
  26. <DefaultLayout>
  27. <CRow>
  28. <CCol md="8">
  29. <CCard color="light" class="border-light">
  30. <CForm @submit.prevent="submit">
  31. <CRow class="p-4">
  32. <CCol md="6" class="mb-4">
  33. <AppTextInput label="Nama" placeholder="nama" :error="form.errors.name" v-model="form.name" />
  34. </CCol>
  35. <CCol md="6" class="mb-4">
  36. <AppTextInput label="Nomor HP" placeholder="nomor hp" :error="form.errors.phone" v-model="form.phone" />
  37. </CCol>
  38. <CCol md="6" class="mb-4">
  39. <AppTextInput label="Email" placeholder="email" :error="form.errors.email" v-model="form.email" />
  40. </CCol>
  41. <CCol md="6" class="mb-4">
  42. <AppTextInput label="Alamat" placeholder="alamat" :error="form.errors.address" v-model="form.address" />
  43. </CCol>
  44. <CCol md="6" class="mb-4">
  45. <AppSelectInput label="Jenis Kelamin" :error="form.errors.gender" v-model="form.gender">
  46. <option value="1">Perempuan</option>
  47. <option value="2">Laki-laki</option>
  48. </AppSelectInput>
  49. </CCol>
  50. <CCol md="6" class="mb-4">
  51. <AppSelectInput label="Outlet" :error="form.errors.outlet_id" v-model="form.outlet_id">
  52. <option v-for="outlet in outlets" key="outlet.id" :value="outlet.id">{{ outlet.name }}</option>
  53. </AppSelectInput>
  54. </CCol>
  55. <CCol md="6">
  56. <AppSelectInput label="Hak Akses" :error="form.errors.role_id" v-model="form.role_id">
  57. <option v-for="role in roles" key="role.id" :value="role.id">{{ role.name }}</option>
  58. </AppSelectInput>
  59. </CCol>
  60. </CRow>
  61. <CCardFooter class="d-flex justify-content-end">
  62. <AppButtonCreate :disabled="form.processing">Tambah User</AppButtonCreate>
  63. </CCardFooter>
  64. </CForm>
  65. </CCard>
  66. </CCol>
  67. </CRow>
  68. </DefaultLayout>
  69. </template>