Files
hossein-por-shop/frontend/pages/profile/tickets/index.vue
T
2025-02-14 01:28:09 +03:30

95 lines
3.1 KiB
Vue

<script setup lang="ts">
import TicketsTableRow from "~/components/profile/tickets/TicketsTableRow.vue";
// meta
definePageMeta({
middleware: "check-is-logged-in",
layout: "profile",
});
// state
const filters = ref({
sort: undefined,
status: undefined,
search: "",
});
const tableHeads = ref([
"دسته بندی",
"موضوع",
"تاریخ ایجاد و بروز رسانی",
"وضعیت",
"عملیات",
]);
</script>
<template>
<div class="w-full flex flex-col gap-10">
<ProfilePageTitle title="تیکت های شما" icon="bi:ticket" />
<div class="w-full flex flex-col gap-8">
<div class="w-full flex items-center justify-between px-5">
<div class="flex items-center justify-start gap-8">
<div class="flex items-center justify-start gap-3">
<span class="text-sm">ترتیب بر اساس</span>
<Select
:options="['جدید ترین', 'قدیمی ترین']"
v-model="filters.sort!"
triggerRootClass="!py-2.5"
class="w-[5rem]"
/>
</div>
<div class="flex items-center justify-start gap-3">
<span class="text-sm">وضعیت پرداخت</span>
<Select
:options="[
'پرداخت شده',
'در حال پردازش',
'لغو شده',
]"
v-model="filters.status!"
triggerRootClass="!py-2.5"
class="w-[5rem]"
/>
</div>
</div>
<NuxtLink :to="{ name: 'profile-tickets-new' }">
<Button end-icon="bi:plus" size="md" class="rounded-full">
<span class="font-bold whitespace-pre">
تیکت جدید
</span>
</Button>
</NuxtLink>
</div>
<Table>
<template #thead>
<th
v-for="(tableHead, index) in tableHeads"
:key="index"
scope="col"
:class="
[0, 1, 2].includes(index)
? 'w-3/12'
: tableHeads.length - 1 == index
? 'w-1/2'
: 'w-2/12'
"
class="px-6 py-5 text-sm font-normal"
>
{{ tableHead }}
</th>
</template>
<template #tbody>
<TicketsTableRow v-for="i in 4" />
</template>
</Table>
</div>
</div>
</template>
<style scoped></style>