Files
radicall/resources/js/Client/components/dashboard/fastRequest/ArchiveCase.vue
T

100 lines
3.7 KiB
Vue
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<script setup>
import Dialog from 'primevue/dialog';
import UiButton from '../../ui/UiButton.vue';
import TableGeneric from '../../ui/TableGeneric.vue';
import { computed, ref } from 'vue';
import CaseNumber from './CaseNumber.vue';
import { useFastRequestStore } from '../../../store/FastRequest';
const visible = defineModel('visible');
const fastRequestStore = useFastRequestStore();
const isChooseCaseNumber = ref(false);
const selectedPetId = ref(null);
const showChooseCaseNumber = () => {
isChooseCaseNumber.value = true;
}
const data = computed(() => fastRequestStore.pets.map((pet) => ({
id: pet.id,
case_number: pet.id,
case_name: pet.name,
case_type: pet.breed ? `${pet.type} (${pet.breed})` : pet.type,
})));
const selectPet = (petId) => {
selectedPetId.value = petId;
}
const confirmSelection = () => {
if (!selectedPetId.value) return;
fastRequestStore.selectArchivePet(selectedPetId.value);
visible.value = false;
}
const columns = ref([
{
title: 'شناسه کیس',
key: 'case_number'
},
{
title: 'نام کیس',
key: 'case_name'
},
{
title: 'نوع(نژاد)',
key: 'case_type'
},
{
title: '',
key: 'actions',
width: 60,
style: 'grid grid-cols-1',
slot: true,
}
]);
</script>
<template>
<Dialog v-model:visible="visible" :modal="true" :closable="true" :dismissableMask="true" :maximizable="false" :style="{ width: '554px' , minHeight: '326px' }" class="fast-request-dialog">
<template #header>
<h3>انتخاب کیس از آرشیو</h3>
</template>
<div class="w-full py-2 flex flex-col items-start justify-center border-t border-[#EBEBEB] text-[11px] font-[600]">
<p>لیست کیس‌های ثبت‌شده توسط شما در ادامه‌ نمایش داده می‌شود.</p>
<p>در صورتیکه شماره مرجع یک کیس را در اختیار داشته باشید می‌توانید درخواست را برای کیس مربوطه نیز ثبت کنید.</p>
</div>
<div class="h-[180px] overflow-y-scroll">
<p v-if="!data.length" class="w-full py-8 text-center text-[11px] font-[400] text-[#7188AD]">کیسی در آرشیو شما ثبت نشده است.</p>
<TableGeneric
v-else
class="bg-white !rounded-2xl"
:data="data"
customStyle="!text-[11px] !font-normal"
:searchable="false"
:columns="columns"
:selectable="false"
:pagination="null"
:model-value="[]"
>
<template #column-actions="{ data }">
<div class="flex items-center justify-end">
<UiButton
:severity="selectedPetId === data.id ? 'success' : 'secondary'"
size="small"
:label="selectedPetId === data.id ? 'انتخاب شد' : 'انتخاب'"
@click="selectPet(data.id)"
/>
</div>
</template>
</TableGeneric>
</div>
<div class="w-full pt-3 flex items-center justify-end gap-2 border-t border-[#EBEBEB]">
<ui-button label="افزودن از طریق شناسه کیس" severity="secondary" @click="showChooseCaseNumber"/>
<ui-button label="تایید و انتخاب" severity="success" size="small" :disabled="!selectedPetId" @click="confirmSelection" />
</div>
<case-number v-model:visible="isChooseCaseNumber" @selected="visible = false"></case-number>
</Dialog>
</template>