Ppn.vue 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <script setup>
  2. import { useState } from '../Composables/useState'
  3. import { useForm } from '@/composables/useForm'
  4. import AppInputText from '@/components/AppInputText.vue'
  5. const props = defineProps({
  6. ppn: Object,
  7. })
  8. const form = useForm({
  9. ppn: props.ppn.ppn,
  10. })
  11. const { state, setState } = useState()
  12. const onSubmit = () => {
  13. setState()
  14. if (state.disable) {
  15. if (!form.ppn) {
  16. form.ppn = 0
  17. }
  18. form.post(route('ppn.store'))
  19. }
  20. }
  21. </script>
  22. <template>
  23. <div class="grid">
  24. <div class="col-12">
  25. <h1 class="text-lg">Pajak Pertambahan Nilai</h1>
  26. </div>
  27. <div class="col-12">
  28. <AppInputText
  29. label="PPN %"
  30. placeholder="ppn"
  31. type="number"
  32. :disabled="state.disable"
  33. :error="form.errors.ppn"
  34. v-model="form.ppn"
  35. />
  36. </div>
  37. <div class="col-12">
  38. <div class="flex flex-column md:flex-row justify-content-end">
  39. <Button
  40. class="p-button-outlined"
  41. :icon="state.icon"
  42. :label="state.label"
  43. :disabled="form.processing"
  44. @click="onSubmit"
  45. />
  46. </div>
  47. </div>
  48. </div>
  49. </template>