1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <script setup>
  2. import { useForm } from '@inertiajs/inertia-vue3'
  3. import { useFormErrorReset } from '@/components/useFormErrorReset'
  4. import DashboardLayout from '@/layouts/DashboardLayout.vue'
  5. import AppInputNumber from '@/components/AppInputNumber.vue'
  6. import AppEditor from '@/components/AppEditor.vue'
  7. const form = useForm({
  8. description: null,
  9. amount: null,
  10. })
  11. useFormErrorReset(form)
  12. const onSubmit = () => {
  13. form.post(route('expenses.store'), { onSuccess: () => form.reset() })
  14. }
  15. </script>
  16. <template>
  17. <DashboardLayout>
  18. <div class="grid">
  19. <div class="col-12 md:col-8">
  20. <Card>
  21. <template #title> Tambah Pengeluaran </template>
  22. <template #content>
  23. <AppInputNumber
  24. v-model="form.amount"
  25. class="md:w-16rem"
  26. label="Pengeluaran"
  27. placeholder="contoh: 100000"
  28. :error="form.errors.amount"
  29. />
  30. <AppEditor
  31. label="Keterangan"
  32. v-model="form.description"
  33. editor-style="height: 320px"
  34. placeholder="tulis keterangan disini"
  35. :error="form.errors.description"
  36. >
  37. <template #toolbar>
  38. <span class="q-formats">
  39. <button class="ql-bold" v-tooltip.bottom="'Bold'"></button>
  40. <button
  41. class="ql-italic"
  42. v-tooltip.bottom="'Italic'"
  43. ></button>
  44. <button
  45. class="ql-underline"
  46. v-tooltip.bottom="'Underline'"
  47. ></button>
  48. </span>
  49. <span class="ql-formats">
  50. <button
  51. class="ql-list"
  52. value="ordered"
  53. v-tooltip.bottom="'Ordered'"
  54. ></button>
  55. <button
  56. class="ql-list"
  57. value="bullet"
  58. v-tooltip.bottom="'Bullet'"
  59. ></button>
  60. </span>
  61. </template>
  62. </AppEditor>
  63. </template>
  64. <template #footer>
  65. <div class="flex flex-column md:flex-row justify-content-end">
  66. <Button
  67. label="Simpan"
  68. icon="pi pi-check"
  69. class="p-button-outlined"
  70. :disabled="form.processing"
  71. @click="onSubmit"
  72. />
  73. </div>
  74. </template>
  75. </Card>
  76. </div>
  77. </div>
  78. </DashboardLayout>
  79. </template>