<script setup>
import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout.vue';
import { Head, Link, router } from '@inertiajs/vue3';
import TextInput from '@/Components/TextInput.vue';
import InputLabel from '@/Components/InputLabel.vue';
import InputError from '@/Components/InputError.vue';
import PrimaryButton from '@/Components/PrimaryButton.vue';
import SelectInput from '@/Components/SelectInput.vue';
import TextAreaInput from '@/Components/TextAreaInput.vue';
import { ref, watch } from 'vue';
const props = defineProps({
customers: {
type: Array,
default: () => []
}
});
const filters = ref({
page: parseInt(route().params.page ?? 1)
});
const getData = async () => {
router.get(route(route().current, filters.value));
}
const headers = [
{ name: "Name", key: "name" },
{ name: "Email", key: "email" },
{ name: "Discount", key: "discount" },
{ name: "Date Added", key: "created_at" },
{ name: "Action", key: "action" },
];
watch(filters, () => {
getData();
}, { deep: true });
</script>
<template>
<AuthenticatedLayout>
<Head title="Customers" />
<template #header>
<h2 class="text-xl font-semibold leading-tight text-gray-800">
Customers
</h2>
</template>
<div class="py-12">
<div class="mx-auto max-w-7xl sm:px-6 lg:px-8">
<div class="bg-white shadow-sm sm:rounded-lg">
<div
class="flex items-center justify-between px-6 py-3 border-b border-gray-200 sm:flex-row sm:items-center sm:justify-between sm:px-10">
<div class="flex items-center">
<Link :href="route('admin.customers.create')"
class="text-sm font-medium text-gray-500 hover:text-gray-700">
Add New Customer
</Link>
</div>
</div>
<table class="table w-full overflow-x-hidden">
<thead>
<tr>
<th v-for="header in headers" :key="header.key"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-w-normal">
{{ header.name }}
</th>
</tr>
</thead>
<tbody>
<tr v-for="customer in customers.data" :key="customer.id">
<td class="px-4 py-3">{{ customer.name }}</td>
<td class="px-4 py-3">{{ customer.email }}</td>
<td class="px-4 py-3">{{ customer.discount_value }}</td>
<td class="px-4 py-3">{{ new Date(customer.created_at).toDateString() }}</td>
<td class="px-4 py-3">
<div class="inline-flex items-center gap-4">
<Link :href="route('admin.customers.edit', customer.id)"
class="text-sm font-medium text-gray-500 hover:text-gray-700">
Edit
</Link>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</AuthenticatedLayout>
</template>
|