.
This commit is contained in:
@ -727,6 +727,99 @@ svg {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
/* İşlem durumu badge stilleri - basit ve kompakt */
|
||||
.islem-status-badge {
|
||||
display: inline-block;
|
||||
padding: 4px 10px;
|
||||
color: #fff;
|
||||
border-radius: 12px;
|
||||
font-size: 0.875em;
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.form-select-list-item .islem-status-badge {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.form-select-activator .islem-status-badge {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
/* Her durum için benzersiz canlı renkler */
|
||||
.islem-status-coral {
|
||||
background: #e74c3c;
|
||||
}
|
||||
.islem-status-amber {
|
||||
background: #f39c12;
|
||||
}
|
||||
.islem-status-sky {
|
||||
background: #3498db;
|
||||
}
|
||||
.islem-status-rose {
|
||||
background: #e91e63;
|
||||
}
|
||||
.islem-status-pink {
|
||||
background: #ec407a;
|
||||
}
|
||||
.islem-status-slate {
|
||||
background: #607d8b;
|
||||
color: #fff;
|
||||
}
|
||||
.islem-status-emerald {
|
||||
background: #27ae60;
|
||||
}
|
||||
.islem-status-red {
|
||||
background: #c0392b;
|
||||
}
|
||||
.islem-status-salmon {
|
||||
background: #e67e22;
|
||||
}
|
||||
.islem-status-mint {
|
||||
background: #2ecc71;
|
||||
}
|
||||
.islem-status-peach {
|
||||
background: #ff9800;
|
||||
}
|
||||
.islem-status-yellow {
|
||||
background: #f1c40f;
|
||||
color: #333;
|
||||
}
|
||||
.islem-status-teal {
|
||||
background: #1abc9c;
|
||||
}
|
||||
.islem-status-cyan {
|
||||
background: #00bcd4;
|
||||
}
|
||||
.islem-status-orange {
|
||||
background: #ff5722;
|
||||
}
|
||||
.islem-status-blue {
|
||||
background: #2196f3;
|
||||
}
|
||||
.islem-status-gold {
|
||||
background: #ffc107;
|
||||
color: #333;
|
||||
}
|
||||
.islem-status-lavender {
|
||||
background: #9c27b0;
|
||||
}
|
||||
.islem-status-violet {
|
||||
background: #673ab7;
|
||||
}
|
||||
.islem-status-crimson {
|
||||
background: #d32f2f;
|
||||
}
|
||||
.islem-status-indigo {
|
||||
background: #3f51b5;
|
||||
}
|
||||
.islem-status-default {
|
||||
background: #757575;
|
||||
}
|
||||
|
||||
/* login */
|
||||
.login-w {
|
||||
min-width: 100%;
|
||||
|
||||
@ -18,16 +18,27 @@
|
||||
listVal="islemId"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.onayDurumuIslemTipiId" />
|
||||
<template v-if="piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4">
|
||||
<form-input
|
||||
modelKey="izinSayisi"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.izinSayisi"
|
||||
required
|
||||
label="İzin Sayı No"
|
||||
placeholder="İzin Sayı No"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinSayisi"
|
||||
@keyup="OnKeyup" />
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.onayDurumuIslemTipiId">
|
||||
<template #option="{ optionData }">
|
||||
<span
|
||||
v-if="optionData && optionData.tipAdi"
|
||||
class="islem-status-badge"
|
||||
:class="piyangoStore.GetIslemStatusClass(optionData.tipAdi)">
|
||||
{{ optionData.tipAdi }}
|
||||
</span>
|
||||
<span v-else>{{ optionData?.tipAdi || optionData }}</span>
|
||||
</template>
|
||||
<template #activator="{ activatorData }">
|
||||
<span
|
||||
v-if="activatorData && activatorData.tipAdi"
|
||||
class="islem-status-badge"
|
||||
:class="piyangoStore.GetIslemStatusClass(activatorData.tipAdi)">
|
||||
{{ activatorData.tipAdi }}
|
||||
</span>
|
||||
<span v-else>Lütfen Seçim Yapınız</span>
|
||||
</template>
|
||||
</form-select>
|
||||
<template v-if="showIzinFields">
|
||||
<form-date
|
||||
type="date"
|
||||
required
|
||||
@ -36,12 +47,30 @@
|
||||
label="İzin Tarihi"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinTarihi"
|
||||
@change="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="izinSayisi"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.izinSayisi"
|
||||
required
|
||||
label="İzin Sayısı"
|
||||
placeholder="İzin Sayısı"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinSayisi"
|
||||
@keyup="OnKeyup" />
|
||||
<form-textarea
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.izinAciklamasi"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinAciklamasi"
|
||||
label="İzin Açıklaması"
|
||||
@keyup="OnKeyup" />
|
||||
</template>
|
||||
<form-select
|
||||
v-if="showKapsamDisiSebebi"
|
||||
label="Kapsam Dışı Sebebi"
|
||||
:listData="kapsamDisiSebepListesi"
|
||||
listText="name"
|
||||
listVal="id"
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTexts.kapsamDisiSebebi"
|
||||
@change="OnKeyup" />
|
||||
<form-file
|
||||
v-model="piyangoOnayStore.piyangoOnayForm.file"
|
||||
elclass="panel-documents-item"
|
||||
@ -55,7 +84,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { onBeforeMount } from 'vue'
|
||||
import { onBeforeMount, computed, ref } from 'vue'
|
||||
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
|
||||
const piyangoOnayStore = usePiyangoOnayStore()
|
||||
import { usePiyangoOnayValidationStore } from '../../validation/piyangoOnayValidationStore'
|
||||
@ -66,6 +95,38 @@
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
import { usePiyangoServices } from '../../service/piyangoServices'
|
||||
const piyangoServices = usePiyangoServices()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
|
||||
const kapsamDisiId = computed<number | null>(() => {
|
||||
const kapsamDisi = piyangoDataStore.piyangoOnayDurumlari.find(
|
||||
(item: Record<string, any>) => item.tipAdi === 'Kapsam Dışı'
|
||||
)
|
||||
return kapsamDisi ? kapsamDisi.islemId : null
|
||||
})
|
||||
|
||||
const showIzinFields = computed<boolean>(() => {
|
||||
return (
|
||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4 ||
|
||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value
|
||||
)
|
||||
})
|
||||
|
||||
const showKapsamDisiSebebi = computed<boolean>(() => {
|
||||
return piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value
|
||||
})
|
||||
|
||||
const kapsamDisiSebepListesi = ref<Record<string, any>[]>([
|
||||
{ id: '2/a', name: '2/a' },
|
||||
{ id: '2/b', name: '2/b' },
|
||||
{ id: '2/c', name: '2/c' },
|
||||
{ id: '2/ç', name: '2/ç' },
|
||||
{ id: '2/d', name: '2/d' },
|
||||
{ id: '2/e', name: '2/e' },
|
||||
{ id: '2/f', name: '2/f' },
|
||||
{ id: '2/g', name: '2/g' },
|
||||
{ id: 'Diğer', name: 'Diğer' }
|
||||
])
|
||||
|
||||
const OnKeyup = () => {
|
||||
piyangoOnayValidationStore.formChanged = true
|
||||
|
||||
@ -72,6 +72,11 @@
|
||||
name: 'onayDurumuIslemTipiAdi',
|
||||
title: 'İşlem',
|
||||
sort: true,
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
const statusName = v.onayDurumuIslemTipiAdi || ''
|
||||
const statusClass = piyangoStore.GetIslemStatusClass(statusName)
|
||||
return `<span class='islem-status-badge ${statusClass}'>${statusName}</span>`
|
||||
},
|
||||
filter: {
|
||||
type: 'select',
|
||||
data: piyangoOnayDurumlari,
|
||||
@ -100,16 +105,30 @@
|
||||
},
|
||||
{
|
||||
name: 'izinTarihi',
|
||||
title: 'İzin Tarihi'
|
||||
title: 'İzin Tarihi',
|
||||
compute: (v: Record<string, any>): string => {
|
||||
return v.izinTarihi === null || v.izinTarihi === undefined || v.izinTarihi === ''
|
||||
? ''
|
||||
: dateStore.dateFormat({ pattern: 'dd-mm-yy', date: v.izinTarihi })
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'izinAciklamasi',
|
||||
title: 'İzin Açıklaması'
|
||||
},
|
||||
{
|
||||
name: 'kapsamDisiSebebi',
|
||||
title: 'Kapsam Dışı Sebebi'
|
||||
},
|
||||
])
|
||||
|
||||
const EditOnay = (d: Record<string, any>) => {
|
||||
Object.assign(piyangoOnayStore.piyangoPanelOnayForm, d)
|
||||
Object.assign(piyangoOnayStore.piyangoPanelOnayForm, {
|
||||
...piyangoOnayStore.piyangoOnayBaseForm,
|
||||
...d,
|
||||
izinAciklamasi: d.izinAciklamasi != null ? d.izinAciklamasi : '',
|
||||
kapsamDisiSebebi: d.kapsamDisiSebebi != null ? d.kapsamDisiSebebi : null
|
||||
})
|
||||
piyangoOnayStore.onayFormPanel = true
|
||||
}
|
||||
|
||||
|
||||
@ -7,16 +7,27 @@
|
||||
listVal="islemId"
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.onayDurumuIslemTipiId" />
|
||||
<template v-if="piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === 4">
|
||||
<form-input
|
||||
modelKey="izinSayisi"
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.izinSayisi"
|
||||
required
|
||||
label="İzin Sayı No"
|
||||
placeholder="İzin Sayı No"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinSayisi"
|
||||
@keyup="OnKeyup" />
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.onayDurumuIslemTipiId">
|
||||
<template #option="{ optionData }">
|
||||
<span
|
||||
v-if="optionData && optionData.tipAdi"
|
||||
class="islem-status-badge"
|
||||
:class="piyangoStore.GetIslemStatusClass(optionData.tipAdi)">
|
||||
{{ optionData.tipAdi }}
|
||||
</span>
|
||||
<span v-else>{{ optionData?.tipAdi || optionData }}</span>
|
||||
</template>
|
||||
<template #activator="{ activatorData }">
|
||||
<span
|
||||
v-if="activatorData && activatorData.tipAdi"
|
||||
class="islem-status-badge"
|
||||
:class="piyangoStore.GetIslemStatusClass(activatorData.tipAdi)">
|
||||
{{ activatorData.tipAdi }}
|
||||
</span>
|
||||
<span v-else>Lütfen Seçim Yapınız</span>
|
||||
</template>
|
||||
</form-select>
|
||||
<template v-if="showIzinFields">
|
||||
<form-date
|
||||
type="date"
|
||||
required
|
||||
@ -25,12 +36,30 @@
|
||||
label="İzin Tarihi"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinTarihi"
|
||||
@change="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="izinSayisi"
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.izinSayisi"
|
||||
required
|
||||
label="İzin Sayısı"
|
||||
placeholder="İzin Sayısı"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinSayisi"
|
||||
@keyup="OnKeyup" />
|
||||
<form-textarea
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi"
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinAciklamasi"
|
||||
label="İzin Açıklaması"
|
||||
@keyup="OnKeyup" />
|
||||
</template>
|
||||
<form-select
|
||||
v-if="showKapsamDisiSebebi"
|
||||
label="Kapsam Dışı Sebebi"
|
||||
:listData="kapsamDisiSebepListesi"
|
||||
listText="name"
|
||||
listVal="id"
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.kapsamDisiSebebi"
|
||||
required
|
||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.kapsamDisiSebebi"
|
||||
@change="OnKeyup" />
|
||||
<form-file
|
||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.file"
|
||||
elclass="panel-documents-item"
|
||||
@ -43,7 +72,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { onBeforeMount } from 'vue'
|
||||
import { onBeforeMount, computed, ref } from 'vue'
|
||||
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
|
||||
const piyangoOnayStore = usePiyangoOnayStore()
|
||||
import { usePiyangoOnayValidationStore } from '../../validation/piyangoOnayValidationStore'
|
||||
@ -52,6 +81,38 @@
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
import { usePiyangoServices } from '../../service/piyangoServices'
|
||||
const piyangoServices = usePiyangoServices()
|
||||
import { usePiyangoStore } from '../../stores/piyangoStore'
|
||||
const piyangoStore = usePiyangoStore()
|
||||
|
||||
const kapsamDisiId = computed<number | null>(() => {
|
||||
const kapsamDisi = piyangoDataStore.piyangoOnayDurumlari.find(
|
||||
(item: Record<string, any>) => item.tipAdi === 'Kapsam Dışı'
|
||||
)
|
||||
return kapsamDisi ? kapsamDisi.islemId : null
|
||||
})
|
||||
|
||||
const showIzinFields = computed<boolean>(() => {
|
||||
return (
|
||||
piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === 4 ||
|
||||
piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value
|
||||
)
|
||||
})
|
||||
|
||||
const showKapsamDisiSebebi = computed<boolean>(() => {
|
||||
return piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value
|
||||
})
|
||||
|
||||
const kapsamDisiSebepListesi = ref<Record<string, any>[]>([
|
||||
{ id: '2/a', name: '2/a' },
|
||||
{ id: '2/b', name: '2/b' },
|
||||
{ id: '2/c', name: '2/c' },
|
||||
{ id: '2/ç', name: '2/ç' },
|
||||
{ id: '2/d', name: '2/d' },
|
||||
{ id: '2/e', name: '2/e' },
|
||||
{ id: '2/f', name: '2/f' },
|
||||
{ id: '2/g', name: '2/g' },
|
||||
{ id: 'Diğer', name: 'Diğer' }
|
||||
])
|
||||
|
||||
const OnKeyup = () => {
|
||||
piyangoOnayValidationStore.formChanged = true
|
||||
|
||||
@ -34,14 +34,14 @@
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundCount" />
|
||||
<form-file
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDocumentUrl"
|
||||
label='Klasör Arşiv'
|
||||
label='İade Yazısı'
|
||||
elclass="panel-documents-item"
|
||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundDocumentUrl"
|
||||
@change="OnKeyup" />
|
||||
<form-input
|
||||
modelKey="refundDescription"
|
||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDescription"
|
||||
label="İade Açıklama"
|
||||
label="Klasör Arşiv No"
|
||||
@keyup="OnKeyup" />
|
||||
</template>
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ import { usePiyangoStore } from '../stores/piyangoStore'
|
||||
import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
|
||||
import { usePiyangoOnayValidationStore } from '../validation/piyangoOnayValidationStore'
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
|
||||
|
||||
export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
const dataStore = useDataStore()
|
||||
@ -11,6 +12,18 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
const piyangoOnayStore = usePiyangoOnayStore()
|
||||
const piyangoOnayValidationStore = usePiyangoOnayValidationStore()
|
||||
const usersStore = useUsersStore()
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
|
||||
const getKapsamDisiId = (): number | null => {
|
||||
const kapsamDisi = piyangoDataStore.piyangoOnayDurumlari.find(
|
||||
(item: Record<string, any>) => item.tipAdi === 'Kapsam Dışı'
|
||||
)
|
||||
return kapsamDisi ? kapsamDisi.islemId : null
|
||||
}
|
||||
|
||||
const shouldKeepIzinFields = (islemTipiId: number | null): boolean => {
|
||||
return islemTipiId === 4 || islemTipiId === getKapsamDisiId()
|
||||
}
|
||||
|
||||
const SaveOnayDurum = async () => {
|
||||
if (piyangoOnayValidationStore.FormCheck()) {
|
||||
@ -18,11 +31,14 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
let form: any
|
||||
let dataForm = new FormData()
|
||||
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId !== 4) {
|
||||
if (!shouldKeepIzinFields(piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId)) {
|
||||
piyangoOnayStore.piyangoOnayForm.izinSayisi = ''
|
||||
piyangoOnayStore.piyangoOnayForm.izinTarihi = ''
|
||||
piyangoOnayStore.piyangoOnayForm.izinAciklamasi = ''
|
||||
}
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId !== getKapsamDisiId()) {
|
||||
piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi = null
|
||||
}
|
||||
dataForm.append(
|
||||
'onayDurumuIslemTipiId',
|
||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
|
||||
@ -30,10 +46,21 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
|
||||
dataForm.append('kisiId', String(usersStore.userId))
|
||||
dataForm.append('file', piyangoOnayStore.piyangoOnayForm.file)
|
||||
dataForm.append('aciklama', piyangoOnayStore.piyangoOnayForm.aciklama)
|
||||
dataForm.append('izinSayisi', piyangoOnayStore.piyangoOnayForm.izinSayisi)
|
||||
dataForm.append('izinTarihi', piyangoOnayStore.piyangoOnayForm.izinTarihi)
|
||||
dataForm.append('izinAciklamasi', piyangoOnayStore.piyangoOnayForm.izinAciklamasi)
|
||||
dataForm.append('aciklama', piyangoOnayStore.piyangoOnayForm.aciklama || '')
|
||||
dataForm.append('izinSayisi', piyangoOnayStore.piyangoOnayForm.izinSayisi || '')
|
||||
dataForm.append('izinTarihi', piyangoOnayStore.piyangoOnayForm.izinTarihi || '')
|
||||
dataForm.append(
|
||||
'izinAciklamasi',
|
||||
piyangoOnayStore.piyangoOnayForm.izinAciklamasi != null
|
||||
? String(piyangoOnayStore.piyangoOnayForm.izinAciklamasi)
|
||||
: ''
|
||||
)
|
||||
dataForm.append(
|
||||
'kapsamDisiSebebi',
|
||||
piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi != null
|
||||
? String(piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi)
|
||||
: ''
|
||||
)
|
||||
|
||||
form = await dataStore.dataPost('OnayDurumu/', {
|
||||
data: dataForm,
|
||||
@ -61,22 +88,33 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||
let form: any
|
||||
let dataForm = new FormData()
|
||||
|
||||
if (piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId !== 4) {
|
||||
if (!shouldKeepIzinFields(piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId)) {
|
||||
piyangoOnayStore.piyangoPanelOnayForm.izinSayisi = ''
|
||||
piyangoOnayStore.piyangoPanelOnayForm.izinTarihi = ''
|
||||
piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi = ''
|
||||
}
|
||||
if (piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId !== getKapsamDisiId()) {
|
||||
piyangoOnayStore.piyangoPanelOnayForm.kapsamDisiSebebi = null
|
||||
}
|
||||
dataForm.append('onayDurumuIslemTipiId', piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId)
|
||||
dataForm.append('id', piyangoOnayStore.piyangoPanelOnayForm.id)
|
||||
dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
|
||||
dataForm.append('kisiId', String(usersStore.userId))
|
||||
dataForm.append('file', piyangoOnayStore.piyangoPanelOnayForm.file)
|
||||
dataForm.append('aciklama', piyangoOnayStore.piyangoPanelOnayForm.aciklama)
|
||||
dataForm.append('izinSayisi', piyangoOnayStore.piyangoPanelOnayForm.izinSayisi)
|
||||
dataForm.append('izinTarihi', piyangoOnayStore.piyangoPanelOnayForm.izinTarihi)
|
||||
dataForm.append('aciklama', piyangoOnayStore.piyangoPanelOnayForm.aciklama || '')
|
||||
dataForm.append('izinSayisi', piyangoOnayStore.piyangoPanelOnayForm.izinSayisi || '')
|
||||
dataForm.append('izinTarihi', piyangoOnayStore.piyangoPanelOnayForm.izinTarihi || '')
|
||||
dataForm.append(
|
||||
'izinAciklamasi',
|
||||
piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi
|
||||
piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi != null
|
||||
? String(piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi)
|
||||
: ''
|
||||
)
|
||||
dataForm.append(
|
||||
'kapsamDisiSebebi',
|
||||
piyangoOnayStore.piyangoPanelOnayForm.kapsamDisiSebebi != null
|
||||
? String(piyangoOnayStore.piyangoPanelOnayForm.kapsamDisiSebebi)
|
||||
: ''
|
||||
)
|
||||
|
||||
form = await dataStore.dataPut(
|
||||
|
||||
@ -15,7 +15,8 @@ export const usePiyangoOnayStore = defineStore('piyangoOnayStore', () => {
|
||||
file: '',
|
||||
izinSayisi: '',
|
||||
izinTarihi: '',
|
||||
izinAciklamasi: ''
|
||||
izinAciklamasi: '',
|
||||
kapsamDisiSebebi: null
|
||||
})
|
||||
const piyangoOnayForm = reactive<Record<string, any>>({})
|
||||
const piyangoPanelOnayForm = reactive<Record<string, any>>({})
|
||||
|
||||
@ -131,13 +131,41 @@ export const usePiyangoStore = defineStore('piyangoStore', () => {
|
||||
Object.assign(lotteryData, baseLotteryData)
|
||||
}
|
||||
|
||||
const GetIslemStatusClass = (statusName: string | undefined): string => {
|
||||
if (!statusName) {
|
||||
return 'islem-status-default'
|
||||
}
|
||||
// Her duruma benzersiz canlı renkler atanıyor
|
||||
const statusMap: Record<string, string> = {
|
||||
'Bilgi/Belge Eksik/Yanlış': 'islem-status-coral',
|
||||
'Üzerinde Çalışılıyor': 'islem-status-amber',
|
||||
'Başvuru İşleme Alındı': 'islem-status-sky',
|
||||
'Başvuru Uygun Görülmedi': 'islem-status-rose',
|
||||
'İzin Öncesi İptal': 'islem-status-pink',
|
||||
'Kapsam Dışı': 'islem-status-slate',
|
||||
'İzin Verildi': 'islem-status-emerald',
|
||||
'Ceza Verildi': 'islem-status-red',
|
||||
'İzin Sonrası İptal': 'islem-status-salmon',
|
||||
'Kampanya Olumlu Bitti': 'islem-status-mint',
|
||||
'Mükerrer Başvuru': 'islem-status-peach',
|
||||
'Bekliyor': 'islem-status-yellow',
|
||||
'Onaylandı': 'islem-status-teal',
|
||||
'Katılımcı Listesi Yüklendi': 'islem-status-cyan',
|
||||
'Düzenleme Bekliyor': 'islem-status-orange',
|
||||
'Ön Kayıt Kabul Edildi': 'islem-status-blue',
|
||||
'Yardım Amaçlı Piyango Son Onay': 'islem-status-gold',
|
||||
'İnceleme Bekleniyor': 'islem-status-lavender',
|
||||
'Yeni Piyango': 'islem-status-violet',
|
||||
'Başvuru Reddedildi': 'islem-status-crimson',
|
||||
'Değişiklik Talep Ediliyor': 'islem-status-indigo'
|
||||
}
|
||||
return statusMap[statusName] || 'islem-status-default'
|
||||
}
|
||||
|
||||
const LoterryStatusClass = (d: any): string => {
|
||||
let cls = lotteryStatusTypes.value.filter((v) => {
|
||||
return v.name === d
|
||||
})
|
||||
if (cls !== undefined && cls !== null && cls.length !== 0)
|
||||
return 'back-grad-' + cls[0].class
|
||||
else return 'back-grad-waiting'
|
||||
// Yeni renk sistemini kullan, ama back-grad sınıfı ekle (geriye dönük uyumluluk için)
|
||||
const statusClass = GetIslemStatusClass(d)
|
||||
return 'islem-status-badge ' + statusClass
|
||||
}
|
||||
|
||||
const SetLotteryControlData = (data: Record<string, any>) => {
|
||||
@ -181,6 +209,7 @@ export const usePiyangoStore = defineStore('piyangoStore', () => {
|
||||
ResetLotteryData,
|
||||
ResetLotteryContent,
|
||||
LoterryStatusClass,
|
||||
GetIslemStatusClass,
|
||||
SetLotteryControlData
|
||||
}
|
||||
})
|
||||
|
||||
@ -1,13 +1,15 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { ref, reactive, computed } from 'vue'
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
|
||||
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
|
||||
|
||||
export const usePiyangoOnayValidationStore = defineStore(
|
||||
'piyangoOnayValidationStore',
|
||||
() => {
|
||||
const validationStore = useValidationStore()
|
||||
const piyangoOnayStore = usePiyangoOnayStore()
|
||||
const piyangoDataStore = usePiyangoDataStore()
|
||||
|
||||
const formChanged = ref<boolean>(false)
|
||||
const isFormValid = ref<boolean>(true)
|
||||
@ -15,6 +17,17 @@ export const usePiyangoOnayValidationStore = defineStore(
|
||||
const isPanelFormValid = ref<boolean>(true)
|
||||
const invalidTextsPanel = reactive<Record<string, any>>({})
|
||||
|
||||
const kapsamDisiId = computed<number | null>(() => {
|
||||
const kapsamDisi = piyangoDataStore.piyangoOnayDurumlari.find(
|
||||
(item: Record<string, any>) => item.tipAdi === 'Kapsam Dışı'
|
||||
)
|
||||
return kapsamDisi ? kapsamDisi.islemId : null
|
||||
})
|
||||
|
||||
const shouldValidateIzinFields = (islemTipiId: number | null): boolean => {
|
||||
return islemTipiId === 4 || islemTipiId === kapsamDisiId.value
|
||||
}
|
||||
|
||||
const FormCheck = (): boolean => {
|
||||
Object.assign(invalidTexts, {})
|
||||
|
||||
@ -24,12 +37,12 @@ export const usePiyangoOnayValidationStore = defineStore(
|
||||
'onayDurumuIslemTipiId',
|
||||
'Bir işlem tipi seçmelisinz.'
|
||||
)
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4) {
|
||||
if (shouldValidateIzinFields(piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId)) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
invalidTexts,
|
||||
'izinSayisi',
|
||||
'İzin sayı no girmelisiniz.'
|
||||
'İzin sayısı girmelisiniz.'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
@ -38,6 +51,14 @@ export const usePiyangoOnayValidationStore = defineStore(
|
||||
'İzin tarihi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoOnayForm,
|
||||
invalidTexts,
|
||||
'kapsamDisiSebebi',
|
||||
'Kapsam dışı sebebi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
isFormValid.value = Object.keys(invalidTexts).length === 0
|
||||
return isFormValid.value
|
||||
}
|
||||
@ -51,12 +72,12 @@ export const usePiyangoOnayValidationStore = defineStore(
|
||||
'onayDurumuIslemTipiId',
|
||||
'Bir işlem tipi seçmelisinz.'
|
||||
)
|
||||
if (piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === 4) {
|
||||
if (shouldValidateIzinFields(piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId)) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoPanelOnayForm,
|
||||
invalidTextsPanel,
|
||||
'izinSayisi',
|
||||
'İzin sayı no girmelisiniz.'
|
||||
'İzin sayısı girmelisiniz.'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoPanelOnayForm,
|
||||
@ -65,6 +86,14 @@ export const usePiyangoOnayValidationStore = defineStore(
|
||||
'İzin tarihi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
if (piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === kapsamDisiId.value) {
|
||||
validationStore.IsFieldEmpty(
|
||||
piyangoOnayStore.piyangoPanelOnayForm,
|
||||
invalidTextsPanel,
|
||||
'kapsamDisiSebebi',
|
||||
'Kapsam dışı sebebi seçmelisiniz.'
|
||||
)
|
||||
}
|
||||
isPanelFormValid.value = Object.keys(invalidTextsPanel).length === 0
|
||||
return isPanelFormValid.value
|
||||
}
|
||||
|
||||
@ -177,7 +177,7 @@
|
||||
title: 'Durum',
|
||||
style: { width: '10%' },
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
return `<span class="back-grad ${piyangoStore.LoterryStatusClass(v.durum)}">
|
||||
return `<span class="${piyangoStore.LoterryStatusClass(v.durum)}">
|
||||
${v.durum}
|
||||
</span>`
|
||||
},
|
||||
|
||||
@ -134,7 +134,7 @@
|
||||
name: 'durum',
|
||||
title: 'Durum',
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
return `<span class='back-grad ${piyangoStore.LoterryStatusClass(v.durum)}'>
|
||||
return `<span class='${piyangoStore.LoterryStatusClass(v.durum)}'>
|
||||
${v.durum}
|
||||
</span>`
|
||||
},
|
||||
|
||||
@ -157,7 +157,7 @@
|
||||
title: 'Durum',
|
||||
style: { width: '10%' },
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
return `<span class="back-grad ${piyangoStore.LoterryStatusClass(v.durum)}">
|
||||
return `<span class="${piyangoStore.LoterryStatusClass(v.durum)}">
|
||||
${v.durum}
|
||||
</span>`
|
||||
},
|
||||
|
||||
@ -143,7 +143,7 @@
|
||||
title: 'Durum',
|
||||
style: { width: '10%' },
|
||||
computeHtml: (v: Record<string, any>): string => {
|
||||
return `<span class='back-grad ${piyangoStore.LoterryStatusClass(v.durum)}'>
|
||||
return `<span class='${piyangoStore.LoterryStatusClass(v.durum)}'>
|
||||
${v.durum}
|
||||
</span>`
|
||||
},
|
||||
|
||||
@ -7,6 +7,9 @@
|
||||
<template #kisi-kurum-bilgileri>
|
||||
<tab-yetkili-uye-bilgileri />
|
||||
</template>
|
||||
<template #piyangolar>
|
||||
<tab-uye-piyangolar />
|
||||
</template>
|
||||
<template #onay-durumu>
|
||||
<tab-uye-onay-durumu v-if="usersStore.isPanelUser" />
|
||||
<tab-uye-onay-durumu-user v-else />
|
||||
@ -25,6 +28,7 @@
|
||||
|
||||
import AdminLayout from '@/layouts/AdminLayout.vue'
|
||||
import TabYetkiliUyeBilgileri from '../components/TabYetkiliUyeBilgileri.vue'
|
||||
import TabUyePiyangolar from '../components/TabUyePiyangolar.vue'
|
||||
import TabUyeOnayDurumu from '../components/TabUyeOnayDurumu.vue'
|
||||
import TabUyeOnayDurumuUser from '../components/TabUyeOnayDurumuUser.vue'
|
||||
|
||||
@ -32,6 +36,11 @@
|
||||
const tabList = ref<Record<string, any>[]>([
|
||||
{ text: 'Kişi/Kurum Bilgileri', id: 'kisi-kurum-bilgileri' }
|
||||
])
|
||||
|
||||
if (usersStore.isPanelUser || usersStore.isAraciFirma) {
|
||||
tabList.value.push({ text: 'Piyangolar', id: 'piyangolar' })
|
||||
}
|
||||
|
||||
tabList.value.push({ text: 'Onay Durumu', id: 'onay-durumu' })
|
||||
|
||||
onBeforeMount(async () => {
|
||||
|
||||
Reference in New Issue
Block a user