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