-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+ Format: JPG, JPEG, PNG (Max: 2MB per file, Max: 6 foto)
+
+
+
+ {{ uploadError }}
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
![]()
-
-
-
-
-
-
-
-
-
Format: JPG, JPEG, PNG (Max: 2MB per file, Max: 6 foto)
-
-
- {{ uploadError }}
-
-
-
-
- Batal
-
- {{ loading ? 'Menyimpan...' : 'Simpan Perubahan' }}
-
-
-
-
+
diff --git a/resources/js/pages/InputProduk.vue b/resources/js/pages/InputProduk.vue
index c346407..3bec931 100644
--- a/resources/js/pages/InputProduk.vue
+++ b/resources/js/pages/InputProduk.vue
@@ -146,7 +146,11 @@ const category = ref([]);
const loadKategori = async () => {
try {
- const response = await axios.get('/api/kategori');
+ const response = await axios.get('/api/kategori', {
+ headers: {
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ },
+ });
if (response.data && Array.isArray(response.data)) {
category.value = response.data.map(cat => ({
value: cat.id,
@@ -190,7 +194,11 @@ const calculateHargaJual = () => {
const loadExistingPhotos = async () => {
try {
- const response = await axios.get(`/api/foto/${userId.value}`);
+ const response = await axios.get(`/api/foto/${userId.value}`, {
+ headers: {
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ },
+ });
if (response.data && Array.isArray(response.data)) {
uploadedImages.value = response.data;
}
@@ -271,7 +279,9 @@ const uploadFiles = async (files) => {
const response = await axios.post('/api/foto/upload', formData, {
headers: {
- 'Content-Type': 'multipart/form-data',
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ 'Content-Type': 'multipart/form-data',
+
},
});
@@ -292,7 +302,12 @@ const uploadFiles = async (files) => {
const removeImage = async (imageId) => {
try {
- await axios.delete(`/api/foto/hapus/${imageId}`);
+ await axios.delete(`/api/foto/hapus/${imageId}`, {
+ headers: {
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ },
+ })
+;
uploadedImages.value = uploadedImages.value.filter(img => img.id !== imageId);
uploadError.value = '';
} catch (error) {
@@ -312,7 +327,10 @@ const submitForm = async (addItem) => {
try {
const response = await axios.post('/api/produk', {
...form.value,
- id_user: userId.value
+ id_user: userId.value,
+ headers: {
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ },
});
const createdProductData = response.data.data;
@@ -363,7 +381,11 @@ const resetForm = async () => {
harga_jual: 0,
};
try {
- await axios.delete(`/api/foto/reset/${userId.value}`);
+ await axios.delete(`/api/foto/reset/${userId.value}`, {
+ headers: {
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ },
+ });
uploadedImages.value = [];
} catch (error) {
console.error('Error resetting photos:', error);
diff --git a/resources/js/pages/Kasir.vue b/resources/js/pages/Kasir.vue
index 074f3ad..55232a9 100644
--- a/resources/js/pages/Kasir.vue
+++ b/resources/js/pages/Kasir.vue
@@ -59,7 +59,11 @@ const loading = ref(true)
onMounted(async () => {
try {
loading.value = true
- const res = await axios.get("/api/transaksi?limit=10")
+ const res = await axios.get("/api/transaksi?limit=10", {
+ headers: {
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ },
+ })
transaksi.value = res.data
} catch (err) {
diff --git a/resources/js/pages/Kategori.vue b/resources/js/pages/Kategori.vue
index 16ba9eb..e8900f6 100644
--- a/resources/js/pages/Kategori.vue
+++ b/resources/js/pages/Kategori.vue
@@ -101,7 +101,11 @@ const kategoriToDelete = ref(null);
const fetchKategoris = async () => {
loading.value = true;
try {
- const response = await axios.get("/api/kategori");
+ const response = await axios.get("/api/kategori", {
+ headers: {
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ },
+ });
kategori.value = response.data;
console.log("Data kategori:", response.data);
} catch (error) {
@@ -138,7 +142,11 @@ const hapusKategori = (item) => {
// 🔵 Ditambahkan: aksi konfirmasi hapus
const confirmDelete = async () => {
try {
- await axios.delete(`/api/kategori/${kategoriToDelete.value.id}`);
+ await axios.delete(`/api/kategori/${kategoriToDelete.value.id}`, {
+ headers: {
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ },
+ });
console.log("Kategori berhasil dihapus");
fetchKategoris();
} catch (error) {
diff --git a/resources/js/pages/Produk.vue b/resources/js/pages/Produk.vue
index 1184871..ddaae0a 100644
--- a/resources/js/pages/Produk.vue
+++ b/resources/js/pages/Produk.vue
@@ -1,150 +1,160 @@
-
-
-
-
-
-
-
-
-
-
PRODUK
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tambah Produk
-
-
-
-
-
-
-
-
-
-
-
-
![]()
-
[gambar]
+
+
-
-
- {{ detail.items_count }} pcs
-
+
+
+
PRODUK
-
-
- ‹
-
-
-
- ›
-
-
-
-
-
- {{ detail.nama }}
-
-
-
-
-
Harga Jual :
-
- Rp. {{ formatNumber(detail.harga_jual) }}
-
-
-
Kadar :
-
{{ detail.kadar }} K
-
-
Berat :
-
{{ detail.berat }} gram
-
-
Harga/gram :
-
- Rp. {{ formatNumber(detail.harga_per_gram) }}
-
-
-
-
-
-
+
- Ubah
-
+
+
-
- Tambah
-
-
- Hapus
-
+
+
+
+
+
+
+
+ Tambah Produk
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
![]()
+
[gambar]
+
+
+
+ {{ detail.items_count }} pcs
+
+
+
+
+ ‹
+
+
+
+ ›
+
+
+
+
+
+ {{ detail.nama }}
+
+
+
+
+
Harga Jual :
+
+ Rp. {{ formatNumber(detail.harga_jual) }}
+
+
+
Kadar :
+
{{ detail.kadar }} K
+
+
Berat :
+
{{ detail.berat }} gram
+
+
Harga/gram :
+
+ Rp. {{ formatNumber(detail.harga_per_gram) }}
+
+
+
+
+
+
+ Ubah
+
+
+
+ Tambah
+
+
+ Hapus
+
+
+
+
+
diff --git a/resources/js/pages/Sales.vue b/resources/js/pages/Sales.vue
index 8024964..7e8c760 100644
--- a/resources/js/pages/Sales.vue
+++ b/resources/js/pages/Sales.vue
@@ -51,7 +51,7 @@
@@ -76,35 +76,33 @@
>
Alamat
-
- Aksi
- |
+ Aksi |
{{ index + 1 }}
|
{{ item.nama }}
|
{{ item.no_hp }}
|
{{ item.alamat }}
|
@@ -186,7 +184,11 @@ const salesToDelete = ref(null);
const fetchSales = async () => {
loading.value = true;
try {
- const response = await axios.get("/api/sales");
+ const response = await axios.get("/api/sales", {
+ headers: {
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ },
+ });
sales.value = response.data;
} catch (error) {
console.error("Error fetching sales:", error);
@@ -215,7 +217,11 @@ const hapusSales = (item) => {
const confirmDelete = async () => {
try {
- await axios.delete(`/api/sales/${salesToDelete.value.id}`);
+ await axios.delete(`/api/sales/${salesToDelete.value.id}`, {
+ headers: {
+ Authorization: `Bearer ${localStorage.getItem("token")}`,
+ },
+ });
fetchSales();
confirmDeleteOpen.value = false;
} catch (error) {
diff --git a/resources/js/pages/Tray.vue b/resources/js/pages/Tray.vue
index 39a166e..d6478d0 100644
--- a/resources/js/pages/Tray.vue
+++ b/resources/js/pages/Tray.vue
@@ -1,180 +1,230 @@
-
+
+
+
+
+
+ NAMPAN
+
-
-
-
-
- NAMPAN
-
+
+
-
-
+
+
+
+
+ Tambah Nampan
+
-
-
-
-
- Tambah Nampan
-
-
-
-
- Kosongkan
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Tambah Nampan
-
-
-
-
-
-
- Cancel
-
-
-
- Save
-
+
+
+ Kosongkan
+
+
-
-
-
-
-
-
Kosongkan semua nampan?
-
- Semua item akan dimasukkan ke brankas.
- Masuk ke menu ‘Brankas’ untuk mengembalikan item ke nampan.
-
-
-
- Batal
-
-
- Ya
-
+
+
+
+
+
+
+
+
+ Tambah Nampan
+
+
+
+
+
+
+
+ Cancel
+
+
+
+ Save
+
+
+
-
-
-
+
+
+
+
+ Kosongkan semua nampan?
+
+
+ Semua item akan dimasukkan ke brankas.
+ Masuk ke menu ‘Brankas’ untuk mengembalikan item ke nampan.
+
+
+
+ Batal
+
+
+ Ya
+
+
+
+
+