From 15691a97c432cf56c026c74afd2b2b5f7a475b9e Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Sat, 13 Jun 2026 15:00:22 +0700 Subject: [PATCH] feat: implement NumberInput and DecimalInput components and reorganize form input imports --- .../finance/cash/CashTransactionFormModal.vue | 4 +- .../EmployeeAdvanceFormModal.vue | 4 +- .../finance/expenses/ExpenseFormModal.vue | 4 +- .../payroll/PayrollAdjustmentModal.vue | 2 +- .../js/components/admin/hr/EmployeeForm.vue | 4 +- .../admin/manage/cuttings/CuttingPosForm.vue | 489 +++++++++++++----- .../admin/manage/orders/OrderPosForm.vue | 7 +- .../manage/purchases/PurchasePosForm.vue | 8 +- .../master/customers/CustomerFormModal.vue | 2 +- .../admin/master/products/ProductForm.vue | 8 +- .../master/raw-materials/RawMaterialForm.vue | 8 +- .../master/suppliers/SupplierFormModal.vue | 2 +- .../admin/setting/MarketplaceFeeField.vue | 2 +- .../admin/setting/SystemSection.vue | 4 +- .../form/decimal-input/DecimalInput.vue | 85 +++ .../js/components/form/decimal-input/index.ts | 1 + .../image-upload-field/ImageUploadField.vue | 0 .../MultipleImageUploadField.vue | 0 .../{ui => form}/image-upload-field/index.ts | 0 .../form/number-input/NumberInput.vue | 47 ++ .../js/components/form/number-input/index.ts | 1 + .../phone-number-input/PhoneNumberInput.vue | 0 .../{ui => form}/phone-number-input/index.ts | 0 .../{ui => form}/rupiah-input/RupiahInput.vue | 0 .../{ui => form}/rupiah-input/index.ts | 0 resources/js/pages/admin/account/Profile.vue | 2 +- 26 files changed, 525 insertions(+), 159 deletions(-) create mode 100644 resources/js/components/form/decimal-input/DecimalInput.vue create mode 100644 resources/js/components/form/decimal-input/index.ts rename resources/js/components/{ui => form}/image-upload-field/ImageUploadField.vue (100%) rename resources/js/components/{ui => form}/image-upload-field/MultipleImageUploadField.vue (100%) rename resources/js/components/{ui => form}/image-upload-field/index.ts (100%) create mode 100644 resources/js/components/form/number-input/NumberInput.vue create mode 100644 resources/js/components/form/number-input/index.ts rename resources/js/components/{ui => form}/phone-number-input/PhoneNumberInput.vue (100%) rename resources/js/components/{ui => form}/phone-number-input/index.ts (100%) rename resources/js/components/{ui => form}/rupiah-input/RupiahInput.vue (100%) rename resources/js/components/{ui => form}/rupiah-input/index.ts (100%) diff --git a/resources/js/components/admin/finance/cash/CashTransactionFormModal.vue b/resources/js/components/admin/finance/cash/CashTransactionFormModal.vue index b14fb56..4c32f5e 100644 --- a/resources/js/components/admin/finance/cash/CashTransactionFormModal.vue +++ b/resources/js/components/admin/finance/cash/CashTransactionFormModal.vue @@ -18,8 +18,8 @@ import { FieldLabel, FieldSet, } from '@/components/ui/field'; -import ImageUploadField from '@/components/ui/image-upload-field/ImageUploadField.vue'; -import { RupiahInput } from '@/components/ui/rupiah-input'; +import ImageUploadField from '@/components/form/image-upload-field/ImageUploadField.vue'; +import { RupiahInput } from '@/components/form/rupiah-input'; import { Textarea } from '@/components/ui/textarea'; import { useFormDialog } from '@/composables/useFormDialog'; import { FIELD_LIMITS } from '@/lib/field-limits'; diff --git a/resources/js/components/admin/finance/employee-advances/EmployeeAdvanceFormModal.vue b/resources/js/components/admin/finance/employee-advances/EmployeeAdvanceFormModal.vue index 560dbe5..401e886 100644 --- a/resources/js/components/admin/finance/employee-advances/EmployeeAdvanceFormModal.vue +++ b/resources/js/components/admin/finance/employee-advances/EmployeeAdvanceFormModal.vue @@ -19,8 +19,8 @@ import { FieldLabel, FieldSet, } from '@/components/ui/field'; -import ImageUploadField from '@/components/ui/image-upload-field/ImageUploadField.vue'; -import { RupiahInput } from '@/components/ui/rupiah-input'; +import ImageUploadField from '@/components/form/image-upload-field/ImageUploadField.vue'; +import { RupiahInput } from '@/components/form/rupiah-input'; import { Textarea } from '@/components/ui/textarea'; import { useFormDialog } from '@/composables/useFormDialog'; import { FIELD_LIMITS } from '@/lib/field-limits'; diff --git a/resources/js/components/admin/finance/expenses/ExpenseFormModal.vue b/resources/js/components/admin/finance/expenses/ExpenseFormModal.vue index 3b25a53..9fd0f2a 100644 --- a/resources/js/components/admin/finance/expenses/ExpenseFormModal.vue +++ b/resources/js/components/admin/finance/expenses/ExpenseFormModal.vue @@ -18,8 +18,8 @@ import { FieldLabel, FieldSet, } from '@/components/ui/field'; -import { ImageUploadField } from '@/components/ui/image-upload-field'; -import { RupiahInput } from '@/components/ui/rupiah-input'; +import { ImageUploadField } from '@/components/form/image-upload-field'; +import { RupiahInput } from '@/components/form/rupiah-input'; import { Textarea } from '@/components/ui/textarea'; import { useFormDialog } from '@/composables/useFormDialog'; import { FIELD_LIMITS } from '@/lib/field-limits'; diff --git a/resources/js/components/admin/finance/payroll/PayrollAdjustmentModal.vue b/resources/js/components/admin/finance/payroll/PayrollAdjustmentModal.vue index a0da410..f0c15b9 100644 --- a/resources/js/components/admin/finance/payroll/PayrollAdjustmentModal.vue +++ b/resources/js/components/admin/finance/payroll/PayrollAdjustmentModal.vue @@ -20,7 +20,7 @@ import { } from '@/components/ui/field'; import { Label } from '@/components/ui/label'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; -import { RupiahInput } from '@/components/ui/rupiah-input'; +import { RupiahInput } from '@/components/form/rupiah-input'; import { Textarea } from '@/components/ui/textarea'; import { FIELD_LIMITS } from '@/lib/field-limits'; import { parseRupiah } from '@/lib/rupiah'; diff --git a/resources/js/components/admin/hr/EmployeeForm.vue b/resources/js/components/admin/hr/EmployeeForm.vue index 9c94884..330f4db 100644 --- a/resources/js/components/admin/hr/EmployeeForm.vue +++ b/resources/js/components/admin/hr/EmployeeForm.vue @@ -14,9 +14,9 @@ import { } from '@/components/ui/field'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; -import { PhoneNumberInput } from '@/components/ui/phone-number-input'; +import { PhoneNumberInput } from '@/components/form/phone-number-input'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; -import { RupiahInput } from '@/components/ui/rupiah-input'; +import { RupiahInput } from '@/components/form/rupiah-input'; import { Select, SelectContent, diff --git a/resources/js/components/admin/manage/cuttings/CuttingPosForm.vue b/resources/js/components/admin/manage/cuttings/CuttingPosForm.vue index 1711581..0011322 100644 --- a/resources/js/components/admin/manage/cuttings/CuttingPosForm.vue +++ b/resources/js/components/admin/manage/cuttings/CuttingPosForm.vue @@ -1,9 +1,6 @@ + + diff --git a/resources/js/components/form/decimal-input/index.ts b/resources/js/components/form/decimal-input/index.ts new file mode 100644 index 0000000..bf54283 --- /dev/null +++ b/resources/js/components/form/decimal-input/index.ts @@ -0,0 +1 @@ +export { default as DecimalInput } from './DecimalInput.vue'; diff --git a/resources/js/components/ui/image-upload-field/ImageUploadField.vue b/resources/js/components/form/image-upload-field/ImageUploadField.vue similarity index 100% rename from resources/js/components/ui/image-upload-field/ImageUploadField.vue rename to resources/js/components/form/image-upload-field/ImageUploadField.vue diff --git a/resources/js/components/ui/image-upload-field/MultipleImageUploadField.vue b/resources/js/components/form/image-upload-field/MultipleImageUploadField.vue similarity index 100% rename from resources/js/components/ui/image-upload-field/MultipleImageUploadField.vue rename to resources/js/components/form/image-upload-field/MultipleImageUploadField.vue diff --git a/resources/js/components/ui/image-upload-field/index.ts b/resources/js/components/form/image-upload-field/index.ts similarity index 100% rename from resources/js/components/ui/image-upload-field/index.ts rename to resources/js/components/form/image-upload-field/index.ts diff --git a/resources/js/components/form/number-input/NumberInput.vue b/resources/js/components/form/number-input/NumberInput.vue new file mode 100644 index 0000000..3386c42 --- /dev/null +++ b/resources/js/components/form/number-input/NumberInput.vue @@ -0,0 +1,47 @@ + + + diff --git a/resources/js/components/form/number-input/index.ts b/resources/js/components/form/number-input/index.ts new file mode 100644 index 0000000..f26e178 --- /dev/null +++ b/resources/js/components/form/number-input/index.ts @@ -0,0 +1 @@ +export { default as NumberInput } from './NumberInput.vue'; diff --git a/resources/js/components/ui/phone-number-input/PhoneNumberInput.vue b/resources/js/components/form/phone-number-input/PhoneNumberInput.vue similarity index 100% rename from resources/js/components/ui/phone-number-input/PhoneNumberInput.vue rename to resources/js/components/form/phone-number-input/PhoneNumberInput.vue diff --git a/resources/js/components/ui/phone-number-input/index.ts b/resources/js/components/form/phone-number-input/index.ts similarity index 100% rename from resources/js/components/ui/phone-number-input/index.ts rename to resources/js/components/form/phone-number-input/index.ts diff --git a/resources/js/components/ui/rupiah-input/RupiahInput.vue b/resources/js/components/form/rupiah-input/RupiahInput.vue similarity index 100% rename from resources/js/components/ui/rupiah-input/RupiahInput.vue rename to resources/js/components/form/rupiah-input/RupiahInput.vue diff --git a/resources/js/components/ui/rupiah-input/index.ts b/resources/js/components/form/rupiah-input/index.ts similarity index 100% rename from resources/js/components/ui/rupiah-input/index.ts rename to resources/js/components/form/rupiah-input/index.ts diff --git a/resources/js/pages/admin/account/Profile.vue b/resources/js/pages/admin/account/Profile.vue index a1c2dfa..fc2c8b0 100644 --- a/resources/js/pages/admin/account/Profile.vue +++ b/resources/js/pages/admin/account/Profile.vue @@ -13,7 +13,7 @@ import { FieldSet, } from '@/components/ui/field'; import { Input } from '@/components/ui/input'; -import { PhoneNumberInput } from '@/components/ui/phone-number-input'; +import { PhoneNumberInput } from '@/components/form/phone-number-input'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; import { Textarea } from '@/components/ui/textarea'; import AccountLayout from '@/layouts/AccountLayout.vue';