CompanyProfile.vue 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <script setup>
  2. import { useForm } from '@/composables/useForm'
  3. import { useState } from '../Composables/useState'
  4. import AppInputText from '@/components/AppInputText.vue'
  5. const props = defineProps({
  6. company: Object,
  7. })
  8. const form = useForm({
  9. id: props.company?.id,
  10. name: props.company?.name,
  11. address: props.company?.address,
  12. telephone: props.company?.telephone,
  13. email: props.company?.email,
  14. npwp: props.company?.npwp,
  15. })
  16. const { state, setState } = useState()
  17. const onSubmit = () => {
  18. setState()
  19. if (state.disable) {
  20. form.post(route('companies.store'))
  21. }
  22. }
  23. </script>
  24. <template>
  25. <div class="grid">
  26. <div class="col-12">
  27. <h1 class="text-lg">Profil Perusahaan</h1>
  28. </div>
  29. <div class="col-12 md:col-6">
  30. <AppInputText
  31. label="Nama"
  32. placeholder="nama"
  33. :disabled="state.disable"
  34. :error="form.errors.name"
  35. v-model="form.name"
  36. />
  37. </div>
  38. <div class="col-12 md:col-6">
  39. <AppInputText
  40. label="Alamat"
  41. placeholder="alamat"
  42. :disabled="state.disable"
  43. :error="form.errors.address"
  44. v-model="form.address"
  45. />
  46. </div>
  47. <div class="col-12 md:col-6">
  48. <AppInputText
  49. type="number"
  50. label="Nomor Telepon"
  51. placeholder="nomor telepon"
  52. :disabled="state.disable"
  53. :error="form.errors.telephone"
  54. v-model="form.telephone"
  55. />
  56. </div>
  57. <div class="col-12 md:col-6">
  58. <AppInputText
  59. label="Email"
  60. placeholder="email"
  61. :error="form.errors.email"
  62. :disabled="state.disable"
  63. v-model="form.email"
  64. />
  65. </div>
  66. <div class="col-12 md:col-6">
  67. <AppInputText
  68. type="number"
  69. label="NPWP"
  70. placeholder="npwp"
  71. :error="form.errors.npwp"
  72. :disabled="state.disable"
  73. v-model="form.npwp"
  74. />
  75. </div>
  76. <div class="col-12">
  77. <div class="flex flex-column sm:flex-row justify-content-end">
  78. <Button
  79. class="p-button-outlined"
  80. :icon="state.icon"
  81. :label="state.label"
  82. :disabled="form.processing"
  83. @click="onSubmit"
  84. />
  85. </div>
  86. </div>
  87. </div>
  88. </template>