fix: tickets
Deploy banu-front / deploy (push) Failing after 16s

This commit is contained in:
sajjadtalkhabi
2026-06-05 19:42:09 +03:30
parent ea562aeefa
commit b8ccbcc030
24 changed files with 447 additions and 222 deletions
@@ -1,9 +1,14 @@
<template>
<BasicModal width="95%" max-width="55rem" min-width="auto" :show-close-button="true">
<BasicModal
title="جزئیات تکلیف"
title-en="Submission Details"
width="95%"
max-width="55rem"
min-width="auto"
:show-close-button="true"
>
<template #default="{ close }">
<div class="submission-details">
<LineTitleBlock title="جزئیات تکلیف" title-en="Submission Details" />
<SkeletonLoaderBlock v-if="isLoading" :rows="3" :cols-per-row="1" />
<template v-else-if="submission">
<div class="submission-details__person">
@@ -136,7 +141,6 @@ import NoItems from '@/components/blocks/NoItems.vue'
import { formatJalaaliDate } from '@/utils/date-utils'
import TextField from '@/components/form/TextField.vue'
import SelectField from '@/components/form/SelectField.vue'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import TextareaField from '@/components/form/TextareaField.vue'
import LineInfoBlock from '@/components/blocks/LineInfoBlock.vue'
import { EDUCATION_STATUS, SEMINARY_LEVEL, UNIVERSITY_LEVEL } from '@/enums'
@@ -1,9 +1,14 @@
<template>
<BasicModal width="95%" max-width="64rem" min-width="auto" :show-close-button="true">
<BasicModal
title="جزئیات مشاوره"
title-en="Consultation Details"
width="95%"
max-width="64rem"
min-width="auto"
:show-close-button="true"
>
<template #default>
<div class="consultation-details">
<LineTitleBlock title="جزئیات مشاوره" title-en="Consultation Details" />
<div v-if="consultation" class="consultation-details__date">
<span>{{ consultationDate }}</span>
</div>
@@ -55,7 +60,6 @@ import BasicModal from '@/components/BasicModal.vue'
import SvgIcon from '@/components/icons/SvgIcon.vue'
import NoItems from '@/components/blocks/NoItems.vue'
import { formatJalaaliDate } from '@/utils/date-utils'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
import {
adminConsultationsKeys,
@@ -1,9 +1,14 @@
<template>
<BasicModal width="95%" max-width="60rem" min-width="auto" :show-close-button="true">
<BasicModal
:title="modeTitle"
title-en="Offered Course"
width="95%"
max-width="60rem"
min-width="auto"
:show-close-button="true"
>
<template #default="{ close }">
<form class="offered-course" @submit.prevent="onSubmit(close)">
<LineTitleBlock :title="modeTitle" title-en="Offered Course" />
<div class="offered-course__grid">
<div class="offered-course__image-col">
<ImageCropper
@@ -115,7 +120,6 @@ import BaseButton from '@/components/BaseButton.vue'
import SvgIcon from '@/components/icons/SvgIcon.vue'
import TextField from '@/components/form/TextField.vue'
import SelectField from '@/components/form/SelectField.vue'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import ToggleSwitch from '@/components/form/ToggleSwitch.vue'
import ImageCropper from '@/components/form/ImageCropper.vue'
import { objectToFormData } from '@/utils/object-to-formdata'
@@ -1,9 +1,14 @@
<template>
<BasicModal width="95%" max-width="76rem" min-width="auto" :show-close-button="true">
<BasicModal
title="شرکت کنندگان"
title-en="Participants"
width="95%"
max-width="76rem"
min-width="auto"
:show-close-button="true"
>
<template #default="{ close }">
<div class="participant-details">
<LineTitleBlock title="شرکت کنندگان" title-en="Participants" />
<p v-if="participantName" class="participant-details__name">{{ participantName }}</p>
<div class="participant-details__card">
@@ -104,7 +109,6 @@ import BaseButton from '@/components/BaseButton.vue'
import SvgIcon from '@/components/icons/SvgIcon.vue'
import NoItems from '@/components/blocks/NoItems.vue'
import { formatJalaaliDate } from '@/utils/date-utils'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import { useAdminExamParticipantQuery } from '@/services/query/admin-exams'
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
@@ -1,8 +1,14 @@
<template>
<BasicModal width="95%" max-width="60rem" min-width="auto" :show-close-button="true">
<BasicModal
title="شرکت‌کنندگان"
title-en="Participants"
width="95%"
max-width="60rem"
min-width="auto"
:show-close-button="true"
>
<template #default="{ data, close }">
<div class="exam-participants">
<LineTitleBlock title="شرکت‌کنندگان" title-en="Participants" />
<p v-if="data?.title" class="exam-participants__exam">{{ data.title }}</p>
<SkeletonLoaderBlock v-if="isLoading" :rows="4" :cols-per-row="1" />
@@ -72,7 +78,6 @@ import SvgIcon from '@/components/icons/SvgIcon.vue'
import NoItems from '@/components/blocks/NoItems.vue'
import { formatJalaaliDate } from '@/utils/date-utils'
import { usePagination } from '@/composables/usePagination'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import PaginationBlock from '@/components/blocks/PaginationBlock.vue'
import { useAdminExamAttemptsQuery } from '@/services/query/admin-exams'
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
@@ -1,9 +1,14 @@
<template>
<BasicModal width="95%" max-width="64rem" min-width="auto" :show-close-button="true">
<BasicModal
title="جزئیات تیکت"
title-en="Ticket Details"
width="95%"
max-width="64rem"
min-width="auto"
:show-close-button="true"
>
<template #default>
<div class="ticket-details">
<LineTitleBlock title="جزئیات تیکت" title-en="Ticket Details" />
<div v-if="ticket" class="ticket-details__date">
<span>{{ ticketDate }}</span>
</div>
@@ -82,7 +87,6 @@ import BasicModal from '@/components/BasicModal.vue'
import SvgIcon from '@/components/icons/SvgIcon.vue'
import NoItems from '@/components/blocks/NoItems.vue'
import { formatJalaaliDate } from '@/utils/date-utils'
import LineTitleBlock from '@/components/LineTitleBlock.vue'
import { computed, nextTick, onBeforeUnmount, ref, watch } from 'vue'
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
import {
@@ -20,9 +20,9 @@
<LineInfoBlock title="درخواست" :desc="requestText" />
</div>
<div class="service-details__divider" />
<!-- <div class="service-details__divider" /> -->
<footer class="service-details__footer">
<!-- <footer class="service-details__footer">
<BaseButton
text="ارسال پیام"
custom-class="service-details__send-btn"
@@ -32,7 +32,7 @@
<SvgIcon name="arrow-left" :size="18" color="#fff" />
</template>
</BaseButton>
</footer>
</footer> -->
</template>
</div>
</template>
@@ -41,18 +41,17 @@
<script setup>
import { computed } from 'vue'
import { SERVICE_TYPE } from '@/enums'
import useModal from '@/composables/useModal'
import BasicModal from '@/components/BasicModal.vue'
import BaseButton from '@/components/BaseButton.vue'
import SvgIcon from '@/components/icons/SvgIcon.vue'
// import BaseButton from '@/components/BaseButton.vue'
// import SvgIcon from '@/components/icons/SvgIcon.vue'
import LineInfoBlock from '@/components/blocks/LineInfoBlock.vue'
import { useAdminServiceQuery } from '@/services/query/admin-services'
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
defineOptions({ name: 'ServiceDetailsModal' })
const { openModal, getModal } = useModal()
const { getModal } = useModal()
const modalData = computed(() => getModal('ServiceDetailsModal')?.data ?? {})
const serviceId = computed(() => modalData.value.id ?? null)
@@ -66,9 +65,7 @@ const serviceTitle = computed(
() => service.value?.subject || service.value?.title || service.value?.serviceTitle || '—'
)
const serviceTypeLabel = computed(
() => service.value?.typeLabel || SERVICE_TYPE[service.value?.type] || '—'
)
const serviceTypeLabel = computed(() => service.value?.category || '—')
// Pre-migration fixtures used `requestText`/`description`; the new schema puts
// the body inside the first message.
@@ -80,9 +77,9 @@ const requestText = computed(
'—'
)
const onSendMessage = () => {
openModal('SendMessageModal', { id: serviceId.value })
}
// const onSendMessage = () => {
// openModal('SendMessageModal', { id: serviceId.value })
// }
</script>
<style lang="scss" scoped>
@@ -112,7 +109,7 @@ const onSendMessage = () => {
&__footer {
display: flex;
justify-content: center;
justify-content: flex-end;
}
&__send-btn {