Compare commits
14 Commits
sifremi-si
...
e8f914b321
| Author | SHA1 | Date | |
|---|---|---|---|
| e8f914b321 | |||
| bd93496e4d | |||
| 9da5f9946b | |||
| b0386d53e5 | |||
| f6c1b242b2 | |||
| b422187704 | |||
| 678a96d76f | |||
| cb9d2f220f | |||
| 03689a01e3 | |||
| f31bd6ba9e | |||
| 5fe3a36893 | |||
| 4dae2824fb | |||
| 6d4d0c8be9 | |||
| bf047e36f3 |
23
Configs.ts
Normal file
23
Configs.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// build olurken bazı klasorlerin ayri script olarak kaydedilmesi
|
||||||
|
export const TEMPLATE_CHUNK_GROUPS: Record<string, (RegExp | string)[]> = {
|
||||||
|
store: [/\/src\/stores\//],
|
||||||
|
//lott: [/\/src\/module\/cekilisler\//],
|
||||||
|
//user: [/\/src\/module\/kullanicilar\//],
|
||||||
|
//cust: [/\/src\/module\/uyeler\//],
|
||||||
|
//acc: [/\/src\/module\/muhasebe\//],
|
||||||
|
//site: [/\/src\/module\/site-yonetimi\//],
|
||||||
|
//aut: [/\/src\/module\/auth\//]
|
||||||
|
}
|
||||||
|
|
||||||
|
// id -> group_name
|
||||||
|
export function SetTemplateGroup(id: string): string | undefined {
|
||||||
|
const cleanId = id.split('?')[0]
|
||||||
|
for (const [group, pats] of Object.entries(TEMPLATE_CHUNK_GROUPS)) {
|
||||||
|
if (
|
||||||
|
pats.some((p) => (typeof p === 'string' ? cleanId.includes(p) : p.test(cleanId)))
|
||||||
|
) {
|
||||||
|
return group
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
@ -21,8 +21,6 @@
|
|||||||
"jquery": "^3.7.1",
|
"jquery": "^3.7.1",
|
||||||
"parchment": "^3.0.0",
|
"parchment": "^3.0.0",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "^2.1.7",
|
||||||
"quill": "^2.0.3",
|
|
||||||
"quill-image-resize-module": "^3.0.0",
|
|
||||||
"summernote": "^0.9.1",
|
"summernote": "^0.9.1",
|
||||||
"uuid": "^11.1.0",
|
"uuid": "^11.1.0",
|
||||||
"vue": "^3.4.29",
|
"vue": "^3.4.29",
|
||||||
|
|||||||
BIN
public/docs/KVKK_Sartlari.docx
Normal file
BIN
public/docs/KVKK_Sartlari.docx
Normal file
Binary file not shown.
BIN
public/docs/cekilisevi.gov.tr_Uyelik_Sozlesmesi.docx
Normal file
BIN
public/docs/cekilisevi.gov.tr_Uyelik_Sozlesmesi.docx
Normal file
Binary file not shown.
17
public/web.config
Normal file
17
public/web.config
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configuration>
|
||||||
|
<system.webServer>
|
||||||
|
<rewrite>
|
||||||
|
<rules>
|
||||||
|
<rule name="Handle History Mode and custom 404/500" stopProcessing="true">
|
||||||
|
<match url="(.*)" />
|
||||||
|
<conditions logicalGrouping="MatchAll">
|
||||||
|
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
|
||||||
|
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
|
||||||
|
</conditions>
|
||||||
|
<action type="Rewrite" url="/" />
|
||||||
|
</rule>
|
||||||
|
</rules>
|
||||||
|
</rewrite>
|
||||||
|
</system.webServer>
|
||||||
|
</configuration>
|
||||||
@ -251,4 +251,14 @@
|
|||||||
d="M14.3272 17.4867H5.66513C5.33609 17.4867 5.07048 17.7574 5.07048 18.0928C5.07048 18.4281 5.33609 18.6989 5.66513 18.6989H14.3232C14.6522 18.6989 14.9179 18.4281 14.9179 18.0928C14.9179 17.7574 14.6522 17.4867 14.3232 17.4867H14.3272Z"
|
d="M14.3272 17.4867H5.66513C5.33609 17.4867 5.07048 17.7574 5.07048 18.0928C5.07048 18.4281 5.33609 18.6989 5.66513 18.6989H14.3232C14.6522 18.6989 14.9179 18.4281 14.9179 18.0928C14.9179 17.7574 14.6522 17.4867 14.3232 17.4867H14.3272Z"
|
||||||
/>
|
/>
|
||||||
</symbol>
|
</symbol>
|
||||||
|
<symbol id="eyeclose" viewBox="0 0 59 22">
|
||||||
|
<path
|
||||||
|
d="M56.61,11.89l2.55-1.57L52.83.03l-2.55,1.57h0s-11.76,7.25-11.76,7.25c-.94.58-1.91,1.05-2.91,1.43l-2.61.74v.02c-2.43.5-4.94.45-7.36-.14l-1.2-.34c-1.28-.41-2.53-.98-3.72-1.71L7.68.82h0s-1.35-.82-1.35-.82L0,10.28l2.55,1.57,4.76-7.73,6.18,3.81-4.79,7.77,2.55,1.57,4.79-7.77,3.09,1.9c1.15.71,2.35,1.28,3.58,1.74l-2.48,8.78,2.89.82,2.48-8.76c1.32.27,2.66.41,4.01.41,1.41,0,2.82-.16,4.2-.46l2.46,8.7,2.89-.82-2.48-8.75c1.16-.44,2.3-.99,3.39-1.66l3.12-1.92,4.79,7.77,2.55-1.57-4.79-7.77,6.08-3.75,4.75,7.72Z" />
|
||||||
|
</symbol>
|
||||||
|
<symbol id="eye" viewBox="0 0 51 24">
|
||||||
|
<path
|
||||||
|
d="M25.59,24.58c-3.62,0-7.24-.99-10.47-2.98L0,12.29,15.11,2.98c6.46-3.98,14.48-3.98,20.94,0l15.11,9.31-15.11,9.31c-3.23,1.99-6.85,2.98-10.47,2.98ZM5.72,12.29l10.97,6.75c5.49,3.38,12.31,3.38,17.8,0l10.97-6.75-10.97-6.75c-5.49-3.38-12.31-3.38-17.8,0l-10.97,6.75Z" />
|
||||||
|
<path
|
||||||
|
d="M25.59,21.71c-5.19,0-9.42-4.23-9.42-9.42S20.39,2.87,25.59,2.87s9.42,4.23,9.42,9.42-4.23,9.42-9.42,9.42ZM25.59,5.87c-3.54,0-6.42,2.88-6.42,6.42s2.88,6.42,6.42,6.42,6.42-2.88,6.42-6.42-2.88-6.42-6.42-6.42Z" />
|
||||||
|
</symbol>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 44 KiB |
@ -454,6 +454,7 @@ label {
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
label>span {
|
label>span {
|
||||||
@ -726,6 +727,99 @@ svg {
|
|||||||
background-color: #f1f1f1;
|
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 */
|
||||||
.login-w {
|
.login-w {
|
||||||
min-width: 100%;
|
min-width: 100%;
|
||||||
@ -2161,7 +2255,7 @@ section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.panel-wrapper {
|
.panel-wrapper {
|
||||||
max-width: 480px;
|
max-width: 600px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.panel-wrapper.panel-wide {
|
.panel-wrapper.panel-wide {
|
||||||
@ -2174,7 +2268,7 @@ section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.panel-wrapper.panel-right.showme {
|
.panel-wrapper.panel-right.showme {
|
||||||
left: calc(100% - 480px);
|
left: calc(100% - 600px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.panel-wrapper.panel-right.panel-wide.showme {
|
.panel-wrapper.panel-right.panel-wide.showme {
|
||||||
|
|||||||
@ -67,7 +67,7 @@
|
|||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
tableData: Record<string, any>
|
tableData: Record<string, any>[]
|
||||||
lineFunction?: Function
|
lineFunction?: Function
|
||||||
title?: string
|
title?: string
|
||||||
listText?: string
|
listText?: string
|
||||||
@ -97,16 +97,36 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const goToListWithFilter = () => {
|
const goToListWithFilter = () => {
|
||||||
const query: Record<string, any> = {}
|
try {
|
||||||
|
const query: Record<string, any> = {}
|
||||||
// Filtre parametrelerini query'ye ekle
|
|
||||||
if (props.filterParams) {
|
// Filtre parametrelerini query'ye ekle (Filters[...] formatına dönüştür)
|
||||||
Object.assign(query, props.filterParams)
|
if (props.filterParams && typeof props.filterParams === 'object') {
|
||||||
|
Object.keys(props.filterParams).forEach((key) => {
|
||||||
|
const value = props.filterParams![key]
|
||||||
|
if (value !== undefined && value !== null && value !== '') {
|
||||||
|
// Değer zaten operatör içeriyorsa olduğu gibi kullan, yoksa '=' ekle
|
||||||
|
let filterValue = String(value)
|
||||||
|
// Eğer değer zaten operatör içermiyorsa '=' ekle
|
||||||
|
if (!filterValue.match(/^[<>=]/)) {
|
||||||
|
filterValue = '=' + filterValue
|
||||||
|
}
|
||||||
|
// Query parametresine string olarak ekle (Vue Router array'leri yanlış serialize ediyor)
|
||||||
|
query[`Filters[${key}]`] = filterValue
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
router.push({
|
||||||
|
path: '/piyangolar/piyango-listesi',
|
||||||
|
query: query
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.error('goToListWithFilter hatası:', error)
|
||||||
|
// Hata durumunda filtre olmadan yönlendir
|
||||||
|
router.push({
|
||||||
|
path: '/piyangolar/piyango-listesi'
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
router.push({
|
|
||||||
path: '/piyangolar/piyango-listesi',
|
|
||||||
query: query
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -71,6 +71,10 @@
|
|||||||
if (Number(pageNumber.value) < totalPage()) pageNumber.value++
|
if (Number(pageNumber.value) < totalPage()) pageNumber.value++
|
||||||
}
|
}
|
||||||
localPagination.value.pageNumber = pageNumber.value
|
localPagination.value.pageNumber = pageNumber.value
|
||||||
|
IfRouteUsing()
|
||||||
|
emit('update:pagination', localPagination.value)
|
||||||
|
}
|
||||||
|
const IfRouteUsing = () => {
|
||||||
if (props.isUseRoute) {
|
if (props.isUseRoute) {
|
||||||
router.push({
|
router.push({
|
||||||
query: {
|
query: {
|
||||||
@ -79,16 +83,13 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
emit('update:pagination', localPagination.value)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const InputPageControl = (e: Event) => {
|
const InputPageControl = (e: Event) => {
|
||||||
if (Number((e.target as HTMLInputElement).value) < 1)
|
if (Number((e.target as HTMLInputElement).value) < 1)
|
||||||
(e.target as HTMLInputElement).value = '1'
|
(e.target as HTMLInputElement).value = '1'
|
||||||
if (Number((e.target as HTMLInputElement).value) > totalPage())
|
if (Number((e.target as HTMLInputElement).value) > totalPage())
|
||||||
(e.target as HTMLInputElement).value = String(totalPage())
|
(e.target as HTMLInputElement).value = String(totalPage())
|
||||||
pageNumber.value = Number((e.target as HTMLInputElement).value)
|
pageNumber.value = Number((e.target as HTMLInputElement).value)
|
||||||
|
|
||||||
if ((e as KeyboardEvent).key === 'Enter') getPage()
|
if ((e as KeyboardEvent).key === 'Enter') getPage()
|
||||||
}
|
}
|
||||||
const PageNumberFocus = (e: Event) => {
|
const PageNumberFocus = (e: Event) => {
|
||||||
@ -96,6 +97,7 @@
|
|||||||
}
|
}
|
||||||
const getPage = () => {
|
const getPage = () => {
|
||||||
localPagination.value.pageNumber = pageNumber.value
|
localPagination.value.pageNumber = pageNumber.value
|
||||||
|
IfRouteUsing()
|
||||||
emit('update:pagination', localPagination.value)
|
emit('update:pagination', localPagination.value)
|
||||||
}
|
}
|
||||||
const SetPageNumber = () => {
|
const SetPageNumber = () => {
|
||||||
@ -104,6 +106,8 @@
|
|||||||
localPagination.value.pageNumber = pageNumber.value = Number(
|
localPagination.value.pageNumber = pageNumber.value = Number(
|
||||||
route.query.pageNumber
|
route.query.pageNumber
|
||||||
)
|
)
|
||||||
|
} else {
|
||||||
|
localPagination.value.pageNumber = pageNumber.value = 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
</span>
|
</span>
|
||||||
<input
|
<input
|
||||||
:value="modelValue"
|
:value="modelValue"
|
||||||
:type="type"
|
:type="inputType"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
@input="OnInput"
|
@input="OnInput"
|
||||||
@ -22,12 +22,24 @@
|
|||||||
@keyup="OnKeyUp"
|
@keyup="OnKeyUp"
|
||||||
:class="[
|
:class="[
|
||||||
invalidText !== undefined && invalidText !== '' ? 'invalid' : '',
|
invalidText !== undefined && invalidText !== '' ? 'invalid' : '',
|
||||||
iclass || ''
|
iclass || '',
|
||||||
|
isPasswordVisible || props.type === 'password' ? 'password-visible' : ''
|
||||||
]"
|
]"
|
||||||
:min="min"
|
:min="min"
|
||||||
:max="max"
|
:max="max"
|
||||||
:minlength="minlength"
|
:minlength="minlength"
|
||||||
:maxlength="maxlength" />
|
:maxlength="maxlength" />
|
||||||
|
<i
|
||||||
|
class="ico-c ico-password-visible"
|
||||||
|
v-if="props.type === 'password'"
|
||||||
|
@click="PasswordVisibleToggle">
|
||||||
|
<svg>
|
||||||
|
<use
|
||||||
|
:href="
|
||||||
|
'/src/assets/images/icons.svg#' + (isPasswordVisible ? 'eye' : 'eyeclose')
|
||||||
|
"></use>
|
||||||
|
</svg>
|
||||||
|
</i>
|
||||||
<span
|
<span
|
||||||
class="form-item-alert"
|
class="form-item-alert"
|
||||||
v-if="InvalidMessages.length > 0 && InvalidMessages !== ''">
|
v-if="InvalidMessages.length > 0 && InvalidMessages !== ''">
|
||||||
@ -82,9 +94,18 @@
|
|||||||
'keydown',
|
'keydown',
|
||||||
'keyup'
|
'keyup'
|
||||||
])
|
])
|
||||||
const localValue = ref<any>()
|
const isPasswordVisible = ref<boolean>(false)
|
||||||
const InvalidMessageText = reactive<Record<string, any>>({})
|
const InvalidMessageText = reactive<Record<string, any>>({})
|
||||||
|
|
||||||
|
const inputType = computed(() => {
|
||||||
|
if (props.type !== 'password') {
|
||||||
|
return props.type
|
||||||
|
} else {
|
||||||
|
if (isPasswordVisible.value) return 'text'
|
||||||
|
else return 'password'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
const InvalidMessages = computed<string>(() => {
|
const InvalidMessages = computed<string>(() => {
|
||||||
let text = ''
|
let text = ''
|
||||||
Object.keys(InvalidMessageText).forEach((k: string, i: number) => {
|
Object.keys(InvalidMessageText).forEach((k: string, i: number) => {
|
||||||
@ -138,7 +159,9 @@
|
|||||||
emit('update:modelValue', (e.target as HTMLInputElement).value)
|
emit('update:modelValue', (e.target as HTMLInputElement).value)
|
||||||
emit('keyup', e)
|
emit('keyup', e)
|
||||||
}
|
}
|
||||||
|
const PasswordVisibleToggle = () => {
|
||||||
|
if (props.type === 'password') isPasswordVisible.value = !isPasswordVisible.value
|
||||||
|
}
|
||||||
watch(
|
watch(
|
||||||
() => props.invalidText,
|
() => props.invalidText,
|
||||||
() => {
|
() => {
|
||||||
@ -151,3 +174,16 @@
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.ico-password-visible {
|
||||||
|
position: absolute;
|
||||||
|
right: 8px;
|
||||||
|
top: 32px;
|
||||||
|
min-width: 32px;
|
||||||
|
min-height: 32px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.password-visible {
|
||||||
|
padding: 8px 40px 8px 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@ -1,210 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div :class="['form-item', half ? 'form-item-half' : '', elclass || '']">
|
|
||||||
<span class="form-item-title" v-if="title !== undefined && title !== ''">
|
|
||||||
{{ title }}
|
|
||||||
</span>
|
|
||||||
<slot name="input">
|
|
||||||
<label>
|
|
||||||
<span v-if="label !== undefined && label !== ''">
|
|
||||||
{{ label }}
|
|
||||||
<i v-if="required" class="form-item-alert">*</i>
|
|
||||||
</span>
|
|
||||||
<div :ref="'quillContainer' + rnd"></div>
|
|
||||||
<span
|
|
||||||
class="form-item-alert"
|
|
||||||
v-if="InvalidMessages.length > 0 && InvalidMessages !== ''">
|
|
||||||
{{ InvalidMessages }}
|
|
||||||
</span>
|
|
||||||
<span
|
|
||||||
class="form-item-description"
|
|
||||||
v-if="description !== undefined && description !== ''">
|
|
||||||
{{ description }}
|
|
||||||
</span>
|
|
||||||
</label>
|
|
||||||
</slot>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { ref, reactive, computed, onMounted, useTemplateRef, watch } from 'vue'
|
|
||||||
import Quill from 'quill'
|
|
||||||
import 'quill/dist/quill.snow.css'
|
|
||||||
|
|
||||||
declare const window: any
|
|
||||||
|
|
||||||
window.Quill = Quill
|
|
||||||
|
|
||||||
export interface Props {
|
|
||||||
label?: string
|
|
||||||
disabled?: boolean
|
|
||||||
modelValue: string
|
|
||||||
half?: boolean
|
|
||||||
title?: string
|
|
||||||
invalidText?: string
|
|
||||||
description?: string
|
|
||||||
placeholder?: string
|
|
||||||
required?: boolean
|
|
||||||
maxlength?: string
|
|
||||||
minlength?: string
|
|
||||||
iclass?: string
|
|
||||||
elclass?: string
|
|
||||||
modelKey?: string
|
|
||||||
}
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
|
||||||
disabled: false,
|
|
||||||
half: false,
|
|
||||||
required: false,
|
|
||||||
placeholder: ''
|
|
||||||
})
|
|
||||||
|
|
||||||
const emit = defineEmits(['update:modelValue', 'change', 'text-change'])
|
|
||||||
const rnd = ref<number>(Number(Math.random() * 10000000))
|
|
||||||
|
|
||||||
const toolbar = ref<any[]>([
|
|
||||||
[{ font: [] }, { size: [] }],
|
|
||||||
['bold', 'italic', 'underline', 'strike'],
|
|
||||||
[{ color: [] }, { background: [] }],
|
|
||||||
[{ script: 'super' }, { script: 'sub' }],
|
|
||||||
[{ header: '1' }, { header: '2' }, 'blockquote'],
|
|
||||||
[{ list: 'ordered' }, { list: 'bullet' }, { indent: '-1' }, { indent: '+1' }],
|
|
||||||
[{ align: [] }],
|
|
||||||
['link', 'image', 'video'],
|
|
||||||
['clean']
|
|
||||||
])
|
|
||||||
|
|
||||||
const options = reactive<Record<string, any>>({
|
|
||||||
theme: 'snow',
|
|
||||||
modules: {
|
|
||||||
toolbar: toolbar.value,
|
|
||||||
imageResize: {
|
|
||||||
modules: ['Resize', 'DisplaySize', 'Toolbar']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
placeholder: props.placeholder,
|
|
||||||
readOnly: false,
|
|
||||||
debug: false
|
|
||||||
})
|
|
||||||
|
|
||||||
const QuillImageResize = ref<any>()
|
|
||||||
|
|
||||||
const editor = useTemplateRef<any>('quillContainer' + rnd.value)
|
|
||||||
const quill = ref<Quill | null>(null)
|
|
||||||
|
|
||||||
const localValue = ref<string>(props.modelValue)
|
|
||||||
|
|
||||||
const InvalidMessageText = ref<Record<string, any>>({})
|
|
||||||
const InvalidMessages = computed(() => {
|
|
||||||
let text = ''
|
|
||||||
Object.keys(InvalidMessageText.value).forEach((k: string, i: number) => {
|
|
||||||
text += InvalidMessageText.value[k] + ', '
|
|
||||||
})
|
|
||||||
return text
|
|
||||||
})
|
|
||||||
|
|
||||||
const OnTextChange = (e: any) => {
|
|
||||||
if (props.minlength !== undefined) {
|
|
||||||
if (localValue.value.length < Number(props.minlength)) {
|
|
||||||
InvalidMessageText.value.minlength = `Girdiğiniz bilgi en az ${props.minlength} karakter uzunluğunda olmalı`
|
|
||||||
} else {
|
|
||||||
delete InvalidMessageText.value.minlength
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (quill.value !== null) {
|
|
||||||
localValue.value = quill.value!.container.querySelector('.ql-editor')!.innerHTML
|
|
||||||
}
|
|
||||||
|
|
||||||
emit('update:modelValue', localValue.value)
|
|
||||||
emit('change', e)
|
|
||||||
}
|
|
||||||
|
|
||||||
const InitializeEditor = async () => {
|
|
||||||
await setupQuillEditor()
|
|
||||||
SetContent()
|
|
||||||
RegisterEditorEventListeners()
|
|
||||||
}
|
|
||||||
|
|
||||||
const SetContent = () => {
|
|
||||||
if (props.modelValue) quill.value!.root.innerHTML = props.modelValue
|
|
||||||
}
|
|
||||||
|
|
||||||
const setupQuillEditor = async () => {
|
|
||||||
//let Parchment = Quill.import('parchment')
|
|
||||||
|
|
||||||
window.Quill.imports.parchment.Attributor.Style =
|
|
||||||
window.Quill.imports.parchment.StyleAttributor
|
|
||||||
|
|
||||||
//@ts-ignore
|
|
||||||
QuillImageResize.value = await import('quill-image-resize-module')
|
|
||||||
|
|
||||||
quill.value = new Quill(editor.value, options) as Quill
|
|
||||||
;(quill.value!.getModule('toolbar') as Record<
|
|
||||||
string,
|
|
||||||
any
|
|
||||||
>)!.container.addEventListener('mousedown', (e: Event) => {
|
|
||||||
e.preventDefault()
|
|
||||||
})
|
|
||||||
;(quill.value!.getModule('toolbar') as Record<
|
|
||||||
string,
|
|
||||||
any
|
|
||||||
>)!.container.addEventListener('click', (e: Event) => {
|
|
||||||
if ((e.target as HTMLElement).className !== 'ql-image') e.preventDefault()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const RegisterEditorEventListeners = () => {
|
|
||||||
quill.value!.on('text-change', OnTextChange)
|
|
||||||
quill.value!.on('editor-change', OnTextChange)
|
|
||||||
//image resize imaja tıklandığını anlamıyor.
|
|
||||||
quill.value!.root.addEventListener('mouseover', OnMouseOver, false)
|
|
||||||
ListenForEditorEvent('text-change')
|
|
||||||
}
|
|
||||||
const ListenForEditorEvent = (type: any) => {
|
|
||||||
quill.value!.on(type, (...args) => {
|
|
||||||
emit(type, ...args)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const OnMouseOver = (e: Event) => {
|
|
||||||
if (
|
|
||||||
(e.target as HTMLElement)!.firstChild &&
|
|
||||||
((e.target as HTMLElement)!.firstChild as HTMLElement)!.tagName &&
|
|
||||||
((e.target as HTMLElement)!.firstChild as HTMLElement)!.tagName.toUpperCase() ===
|
|
||||||
'IMG'
|
|
||||||
) {
|
|
||||||
;(e.target as HTMLElement)!.classList.add('remove-click-p')
|
|
||||||
;((e.target as HTMLElement)!.firstChild as HTMLElement)!.classList.add(
|
|
||||||
'add-click-img'
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onMounted(async () => {
|
|
||||||
InitializeEditor()
|
|
||||||
})
|
|
||||||
|
|
||||||
watch(
|
|
||||||
() => props.invalidText,
|
|
||||||
() => {
|
|
||||||
if (props.invalidText !== undefined && props.invalidText !== '') {
|
|
||||||
InvalidMessageText.value.invalid = props.invalidText
|
|
||||||
} else {
|
|
||||||
delete InvalidMessageText.value.invalid
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
</script>
|
|
||||||
<style>
|
|
||||||
.ql-toolbar {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.ql-container {
|
|
||||||
width: 100%;
|
|
||||||
min-height: 120px;
|
|
||||||
}
|
|
||||||
.remove-click-p {
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
.add-click-img {
|
|
||||||
pointer-events: all;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@ -61,7 +61,7 @@
|
|||||||
@click="exportPanel = !exportPanel"
|
@click="exportPanel = !exportPanel"
|
||||||
icon="export" />
|
icon="export" />
|
||||||
<icon-button
|
<icon-button
|
||||||
v-if="filterable()"
|
v-if="filterable"
|
||||||
classList="ico-section ico-section-header-btn"
|
classList="ico-section ico-section-header-btn"
|
||||||
@click="OpenFilterPanel"
|
@click="OpenFilterPanel"
|
||||||
icon="filter" />
|
icon="filter" />
|
||||||
@ -85,7 +85,7 @@
|
|||||||
page === 'list' ? 'section-content section-inner' : '',
|
page === 'list' ? 'section-content section-inner' : '',
|
||||||
page === 'form' ? 'form-part-content' : ''
|
page === 'form' ? 'form-part-content' : ''
|
||||||
]">
|
]">
|
||||||
<div class="list-filter-wrapper" v-if="filters() || searched">
|
<div class="list-filter-wrapper" v-if="haveFilter || searched">
|
||||||
<h4>Filtreler ve Arama</h4>
|
<h4>Filtreler ve Arama</h4>
|
||||||
<div class="list-filter-content">
|
<div class="list-filter-content">
|
||||||
<template v-if="localQuery !== ''">
|
<template v-if="localQuery !== ''">
|
||||||
@ -97,14 +97,21 @@
|
|||||||
<span class="list-filter-close" @click="RemoveSearch"></span>
|
<span class="list-filter-close" @click="RemoveSearch"></span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template v-for="(filter, k) in filterParams">
|
<template v-for="(filterA, index) in filterParams" :key="index">
|
||||||
<div class="list-filter-item" data-filter="durum-onaylanmis">
|
<template v-for="(filter, filterIndex) in filterA.values" :key="filterIndex">
|
||||||
<strong>{{ filter.title }}:</strong>
|
<div
|
||||||
<span>
|
class="list-filter-item"
|
||||||
{{ filter.text || filter.val }} {{ filter.op === '=' ? '' : filter.op }}
|
data-filter="durum-onaylanmis"
|
||||||
</span>
|
v-if="filterA.filter && (filter.text !== '' || filter.val !== '')">
|
||||||
<span class="list-filter-close" @click="RemoveFilterKey(k as string)"></span>
|
<strong>{{ filterA.title }}:</strong>
|
||||||
</div>
|
<span>
|
||||||
|
{{ filter.text || filter.val }} {{ filter.op === '=' ? '' : filter.op }}
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="list-filter-close"
|
||||||
|
@click="RemoveFilterKey(index, filterIndex)"></span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -127,10 +134,7 @@
|
|||||||
|
|
||||||
<panel-wrapper v-if="filterPanel" v-model="filterPanel" :panel-title="'Filtreleme'">
|
<panel-wrapper v-if="filterPanel" v-model="filterPanel" :panel-title="'Filtreleme'">
|
||||||
<template #panelContent>
|
<template #panelContent>
|
||||||
<panel-filter
|
<panel-filter :filterHead="tableHeader" :filterParams="localFilterParams" />
|
||||||
:filterHead="tableHeader"
|
|
||||||
v-model:filterParams="localFilterParams"
|
|
||||||
:isUseRoute="isUseRoute" />
|
|
||||||
</template>
|
</template>
|
||||||
<template #footerButton>
|
<template #footerButton>
|
||||||
<div class="button-c button-save" @click="FilterData">Filtrele</div>
|
<div class="button-c button-save" @click="FilterData">Filtrele</div>
|
||||||
@ -260,11 +264,10 @@
|
|||||||
const localTotalRecord = ref<string | number>(0)
|
const localTotalRecord = ref<string | number>(0)
|
||||||
if (props.totalRecord !== undefined) localTotalRecord.value = props.totalRecord
|
if (props.totalRecord !== undefined) localTotalRecord.value = props.totalRecord
|
||||||
|
|
||||||
const localFilterParams = ref<Record<string, any>>({})
|
const localFilterParams = ref<Record<string, any>[]>([])
|
||||||
const filterParams = reactive<Record<string, any>>({})
|
const filterParams = ref<Record<string, any>[]>([])
|
||||||
|
|
||||||
const OpenFilterPanel = () => {
|
const OpenFilterPanel = () => {
|
||||||
Object.assign(localFilterParams.value, filterParams)
|
|
||||||
filterPanel.value = true
|
filterPanel.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -273,28 +276,74 @@
|
|||||||
if (dest[keys] === undefined) delete source[keys]
|
if (dest[keys] === undefined) delete source[keys]
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const CreateFilterData = () => {
|
||||||
|
props.tableHeader.forEach((d: Record<string, any>, ind: number) => {
|
||||||
|
if (d.filter !== undefined) {
|
||||||
|
const filterKey = d.filter.filterId || d.name
|
||||||
|
const filterItem: Record<string, any> = {}
|
||||||
|
const firstVal: Record<string, any> = {}
|
||||||
|
const secondVal: Record<string, any> = {}
|
||||||
|
|
||||||
const FilterData = async () => {
|
filterItem.title = d.title
|
||||||
Object.keys(filterParams).forEach((k) => {
|
filterItem.type = d.filter.type
|
||||||
delete filterParams[k]
|
filterItem.between = d.filter.between || false
|
||||||
})
|
filterItem.range = d.filter.range || false
|
||||||
Object.assign(filterParams, localFilterParams.value)
|
filterItem.key = filterKey
|
||||||
EqualObjects(filterParams, localFilterParams.value)
|
filterItem.filter = false
|
||||||
|
filterItem.hIndex = ind
|
||||||
|
filterItem.values = []
|
||||||
|
|
||||||
if (props.isUseRoute) {
|
const opKey =
|
||||||
Object.keys(route.query).forEach((k) => {
|
d.filter.type === 'date'
|
||||||
if (k.includes('Filters[')) delete route.query[k]
|
? d.filter.between !== undefined && d.filter.between
|
||||||
})
|
? '>'
|
||||||
const q = {
|
: '='
|
||||||
query: {
|
: '='
|
||||||
...route.query
|
firstVal.op = opKey
|
||||||
|
firstVal.val = ''
|
||||||
|
firstVal.text = ''
|
||||||
|
filterItem.values.push(firstVal)
|
||||||
|
if (d.filter.between !== undefined && d.filter.between) {
|
||||||
|
secondVal.op = '<'
|
||||||
|
secondVal.val = ''
|
||||||
|
secondVal.text = ''
|
||||||
|
filterItem.values.push(secondVal)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
localFilterParams.value.push(filterItem)
|
||||||
}
|
}
|
||||||
Object.keys(filterParams).forEach((f, k) => {
|
})
|
||||||
q.query['Filters[' + f + ']'] = filterParams[f].op + filterParams[f].val
|
}
|
||||||
|
|
||||||
|
const AddParamsToObject = (obj: Record<string, any>) => {
|
||||||
|
filterParams.value.forEach((filter, index) => {
|
||||||
|
if (filter.filter) {
|
||||||
|
const key = 'Filters[' + filter.key + ']'
|
||||||
|
if (obj[key] === undefined) obj[key] = [] as string[]
|
||||||
|
filter.values.forEach((val: Record<string, any>, vIndex: number) => {
|
||||||
|
if (val.val !== '') {
|
||||||
|
;(obj[key] as string[]).push(val.op + val.val)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const ResetFilterQueries = async () => {
|
||||||
|
if (props.isUseRoute) {
|
||||||
|
const newQuery: Record<string, any> = {
|
||||||
|
...route.query
|
||||||
|
}
|
||||||
|
Object.keys(newQuery).forEach((q) => {
|
||||||
|
if (q.includes('Filters[')) delete newQuery[q]
|
||||||
})
|
})
|
||||||
router.push(q)
|
await router.replace({ query: newQuery })
|
||||||
|
AddParamsToObject(newQuery)
|
||||||
|
await router.push({ query: newQuery })
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
const FilterData = async () => {
|
||||||
|
filterParams.value = JSON.parse(JSON.stringify(localFilterParams.value))
|
||||||
|
ResetFilterQueries()
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
await GetLocalData()
|
await GetLocalData()
|
||||||
filterPanel.value = false
|
filterPanel.value = false
|
||||||
@ -306,23 +355,32 @@
|
|||||||
(props.addAction as Function)()
|
(props.addAction as Function)()
|
||||||
}
|
}
|
||||||
|
|
||||||
const filterable = () => {
|
const filterable = computed(() =>
|
||||||
return props.tableHeader.filter((e) => e.hasOwnProperty('filter')).length > 0
|
props.tableHeader.some((obj: Record<string, any>) => obj.filter !== undefined)
|
||||||
}
|
)
|
||||||
|
|
||||||
const filters = (): boolean => {
|
const haveFilter = computed(() =>
|
||||||
return Object.keys(filterParams).length > 0
|
filterParams.value.some((obj: Record<string, any>) => obj.filter)
|
||||||
}
|
)
|
||||||
|
|
||||||
const RemoveFilterKey = (k: string) => {
|
const RemoveFilterKey = (index: number, fIndex: number) => {
|
||||||
delete localFilterParams.value[k]
|
|
||||||
delete filterParams[k]
|
|
||||||
const query: Record<string, any> = { ...route.query }
|
const query: Record<string, any> = { ...route.query }
|
||||||
Object.keys(query).forEach((q) => {
|
|
||||||
if (q.includes(k)) delete query[q]
|
filterParams.value[index].values[fIndex].val = ''
|
||||||
})
|
filterParams.value[index].values[fIndex].text = ''
|
||||||
router.push({ query: query })
|
|
||||||
GetLocalData()
|
const allEmpty: boolean = filterParams.value[index].values.every(
|
||||||
|
(obj: Record<string, any>) => obj.val === ''
|
||||||
|
)
|
||||||
|
if (allEmpty) filterParams.value[index].filter = false
|
||||||
|
|
||||||
|
localFilterParams.value = JSON.parse(JSON.stringify(filterParams.value))
|
||||||
|
|
||||||
|
ResetFilterQueries()
|
||||||
|
setTimeout(async () => {
|
||||||
|
await GetLocalData()
|
||||||
|
filterPanel.value = false
|
||||||
|
}, 50)
|
||||||
}
|
}
|
||||||
const RemoveSearch = () => {
|
const RemoveSearch = () => {
|
||||||
localQuery.value = ''
|
localQuery.value = ''
|
||||||
@ -396,52 +454,76 @@
|
|||||||
|
|
||||||
const RouteFilterControl = () => {
|
const RouteFilterControl = () => {
|
||||||
if (props.isUseRoute) {
|
if (props.isUseRoute) {
|
||||||
const q = { ...route.query }
|
|
||||||
localFilterParams.value = {}
|
|
||||||
Object.keys(filterParams).forEach((k) => {
|
|
||||||
delete filterParams[k]
|
|
||||||
})
|
|
||||||
filterChanging.value = true
|
filterChanging.value = true
|
||||||
if (Object.keys(route.query).length > 0) {
|
if (Object.keys(route.query).length > 0) {
|
||||||
Object.keys(route.query).forEach((key) => {
|
Object.keys(route.query).forEach((key) => {
|
||||||
if (key.includes('Filters[')) {
|
if (key.includes('Filters[')) {
|
||||||
const newKey = key.match(/(?<=\[)[^\]]+(?=\])/)![0]
|
const newKey = key.match(/(?<=\[)[^\]]+(?=\])/)![0]
|
||||||
filterParams[newKey] = {}
|
|
||||||
localFilterParams.value[newKey] = {}
|
|
||||||
|
|
||||||
filterParams[newKey].op = (route.query[key]! as string).charAt(0)
|
localFilterParams.value.forEach((filter: Record<string, any>) => {
|
||||||
localFilterParams.value[newKey].op = (route.query[key]! as string).charAt(0)
|
if (filter.key === newKey) {
|
||||||
|
if (!filter.filter) {
|
||||||
|
const isArray = Array.isArray(route.query[key])
|
||||||
|
if (isArray) {
|
||||||
|
;(route.query[key]! as string[]).forEach((val, ind) => {
|
||||||
|
filter.values[ind].op = (route.query[key]! as string[])[ind].charAt(
|
||||||
|
0
|
||||||
|
)
|
||||||
|
filter.values[ind].val = (route.query[key]! as string[])[ind].slice(
|
||||||
|
1
|
||||||
|
)
|
||||||
|
if (filter.type === 'select') {
|
||||||
|
const filterData = props.tableHeader[filter.hIndex].filter!.data
|
||||||
|
if (filterData && Array.isArray(filterData)) {
|
||||||
|
const forText = filterData.find(
|
||||||
|
(o: Record<string, any>) =>
|
||||||
|
String(
|
||||||
|
o[props.tableHeader[filter.hIndex].filter!.listVal]
|
||||||
|
) === String(filter.values[ind].val)
|
||||||
|
)
|
||||||
|
if (forText) {
|
||||||
|
filter.values[ind].text =
|
||||||
|
forText[props.tableHeader[filter.hIndex].filter!.listText]
|
||||||
|
} else {
|
||||||
|
filter.values[ind].text = filter.values[ind].val
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
filter.values[ind].text = filter.values[ind].val
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
filter.values[0].op = (route.query[key] as string).charAt(0)
|
||||||
|
filter.values[0].val = (route.query[key] as string).slice(1)
|
||||||
|
|
||||||
filterParams[newKey].val = (route.query[key]! as string).slice(1)
|
if (filter.type === 'select') {
|
||||||
localFilterParams.value[newKey].val = (route.query[key]! as string).slice(1)
|
const filterData = props.tableHeader[filter.hIndex].filter!.data
|
||||||
|
if (filterData && Array.isArray(filterData)) {
|
||||||
|
const forText = filterData.find(
|
||||||
|
(o: Record<string, any>) =>
|
||||||
|
String(o[props.tableHeader[filter.hIndex].filter!.listVal]) ===
|
||||||
|
String(filter.values[0].val)
|
||||||
|
)
|
||||||
|
if (forText) {
|
||||||
|
filter.values[0].text =
|
||||||
|
forText[props.tableHeader[filter.hIndex].filter!.listText]
|
||||||
|
} else {
|
||||||
|
filter.values[0].text = filter.values[0].val
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
filter.values[0].text = filter.values[0].val
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
filter.filter = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
props.tableHeader.forEach((head: Record<string, any>) => {
|
filterParams.value = JSON.parse(JSON.stringify(localFilterParams.value))
|
||||||
if (head.filter !== undefined) {
|
}
|
||||||
Object.keys(filterParams).forEach((key) => {
|
|
||||||
if (
|
|
||||||
(head.filter.filterId !== undefined && key === head.filter.filterId) ||
|
|
||||||
key === head.name
|
|
||||||
) {
|
|
||||||
filterParams[key].title = head.title
|
|
||||||
localFilterParams.value[key].title = head.title
|
|
||||||
if (
|
|
||||||
head.filter.type === 'select' &&
|
|
||||||
head.filter.data !== undefined &&
|
|
||||||
head.filter.data.length > 0
|
|
||||||
) {
|
|
||||||
const forText = head.filter.data.find((o: Record<string, any>) => {
|
|
||||||
return String(o[head.filter.listVal]) === String(filterParams[key].val)
|
|
||||||
})
|
|
||||||
filterParams[key].text = forText[head.filter.listText]
|
|
||||||
localFilterParams.value[key].text = forText[head.filter.listText]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
filterChanging.value = false
|
filterChanging.value = false
|
||||||
})
|
})
|
||||||
@ -468,9 +550,28 @@
|
|||||||
fileName = 'export.xlsx'
|
fileName = 'export.xlsx'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Export için parametreleri hazırla
|
||||||
|
let exportParams: Record<string, any> = {}
|
||||||
|
|
||||||
|
// Sıralama parametrelerini ekle
|
||||||
|
if (localSort.value.sortColumn !== undefined) {
|
||||||
|
exportParams.sortColumn = localSort.value.sortColumn
|
||||||
|
if (localSort.value.sortOrder !== undefined && localSort.value.sortOrder !== '')
|
||||||
|
exportParams.sortOrder = localSort.value.sortOrder
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arama parametresini ekle
|
||||||
|
if (localQuery.value !== '') {
|
||||||
|
exportParams.searchString = localQuery.value
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filtre parametrelerini ekle
|
||||||
|
if (haveFilter.value) AddParamsToObject(exportParams)
|
||||||
|
|
||||||
// Axios ile dosya indirme - interceptor otomatik olarak token ekleyecek
|
// Axios ile dosya indirme - interceptor otomatik olarak token ekleyecek
|
||||||
try {
|
try {
|
||||||
const response = await axios.get(exportUrl, {
|
const response = await axios.get(exportUrl, {
|
||||||
|
params: exportParams,
|
||||||
responseType: 'blob'
|
responseType: 'blob'
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -515,10 +616,8 @@
|
|||||||
|
|
||||||
var filterparam: Record<string, any> = {}
|
var filterparam: Record<string, any> = {}
|
||||||
|
|
||||||
if (filters()) {
|
if (haveFilter.value) {
|
||||||
Object.keys(filterParams).forEach((f, k) => {
|
AddParamsToObject(filterparam)
|
||||||
filterparam['Filters[' + f + ']'] = filterParams[f].op + filterParams[f].val
|
|
||||||
})
|
|
||||||
Object.assign(apiData.params, filterparam)
|
Object.assign(apiData.params, filterparam)
|
||||||
}
|
}
|
||||||
let dt = await dataStore.dataGet(props.apiList as string, apiData)
|
let dt = await dataStore.dataGet(props.apiList as string, apiData)
|
||||||
@ -564,7 +663,7 @@
|
|||||||
let el: HTMLInputElement = document.getElementById(
|
let el: HTMLInputElement = document.getElementById(
|
||||||
'listsearch' + rnd.value
|
'listsearch' + rnd.value
|
||||||
) as HTMLInputElement
|
) as HTMLInputElement
|
||||||
el.focus
|
el.focus()
|
||||||
el.select()
|
el.select()
|
||||||
}, 50)
|
}, 50)
|
||||||
}
|
}
|
||||||
@ -591,41 +690,17 @@
|
|||||||
mobileButtons.value = false
|
mobileButtons.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filtre başlığını almak için yardımcı fonksiyon
|
|
||||||
const getFilterTitle = (key: string): string => {
|
|
||||||
const filterTitles: Record<string, string> = {
|
|
||||||
'durumId': 'Durum',
|
|
||||||
'piyangoAmacId': 'Piyango Amacı',
|
|
||||||
'cekilisYontemiId': 'Çekiliş Yöntemi'
|
|
||||||
}
|
|
||||||
return filterTitles[key] || key
|
|
||||||
}
|
|
||||||
|
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
if (globalStore.screenWidth >= globalStore.breakPoints.tabletp)
|
if (globalStore.screenWidth >= globalStore.breakPoints.tabletp)
|
||||||
mobileButtons.value = true
|
mobileButtons.value = true
|
||||||
|
|
||||||
|
CreateFilterData()
|
||||||
RoutePageControl()
|
RoutePageControl()
|
||||||
RouteSortControl()
|
RouteSortControl()
|
||||||
RouteSearchControl()
|
RouteSearchControl()
|
||||||
RouteFilterControl()
|
RouteFilterControl()
|
||||||
|
|
||||||
// URL query parametrelerini kontrol et ve filtreleri uygula (ilk istekten önce)
|
|
||||||
if (Object.keys(route.query).length > 0) {
|
|
||||||
Object.keys(route.query).forEach(key => {
|
|
||||||
const value = route.query[key]
|
|
||||||
if (value && typeof value === 'string') {
|
|
||||||
// Filtre parametresini filterParams'a ekle
|
|
||||||
filterParams[key] = {
|
|
||||||
val: value,
|
|
||||||
op: '=',
|
|
||||||
title: getFilterTitle(key)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if (props.apiList !== undefined) GetLocalData()
|
if (props.apiList !== undefined) GetLocalData()
|
||||||
|
|
||||||
window.addEventListener('resize', Resize)
|
window.addEventListener('resize', Resize)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -655,14 +730,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
watch(
|
|
||||||
() => localPagination.value.pageNumber,
|
|
||||||
() => {
|
|
||||||
if (!pageNumberChanging.value) {
|
|
||||||
GetLocalData()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
watch(
|
watch(
|
||||||
() => props.refresh,
|
() => props.refresh,
|
||||||
() => {
|
() => {
|
||||||
|
|||||||
@ -1,107 +1,104 @@
|
|||||||
<template>
|
<template>
|
||||||
<template v-for="(filter, i) in filterHead">
|
<template v-for="(filter, i) in localFilterParams">
|
||||||
<template v-if="filter.filter !== undefined">
|
<template v-if="filter.type === 'datetime-local'">
|
||||||
<template v-if="filter.filter.type === 'datetime-local'">
|
<div class="panel-content-item">
|
||||||
<div class="panel-content-item">
|
<form-date
|
||||||
<form-date
|
v-model="filter.values[0].val"
|
||||||
v-model="localFilterData[filter.name]"
|
:label="
|
||||||
:label="filter.title"
|
filter.title +
|
||||||
@change="UpdateFilter(filter)" />
|
(filter.between !== undefined && filter.between ? ' (Başlangıç)' : '')
|
||||||
<form-select
|
"
|
||||||
v-if="filter.filter.range !== undefined && filter.filter.range"
|
@change="UpdateFilter(filter, 0)" />
|
||||||
:listData="filterOperator"
|
<form-select
|
||||||
v-model="localFilterData[filter.name + 'op']"
|
v-if="filter.range !== undefined && filter.range"
|
||||||
@change="UpdateFilter(filter)" />
|
:listData="filterOperator"
|
||||||
</div>
|
v-model="filter.values[0].op"
|
||||||
</template>
|
@change="UpdateFilter(filter, 0)"
|
||||||
<template v-if="filter.filter.type === 'date'">
|
label="Operator" />
|
||||||
<div class="panel-content-item">
|
<form-date
|
||||||
<form-date
|
v-if="filter.between !== undefined && filter.between"
|
||||||
type="date"
|
v-model="filter.values[1].val"
|
||||||
v-model="localFilterData[filter.name]"
|
:label="
|
||||||
:label="filter.title"
|
filter.title +
|
||||||
@change="UpdateFilter(filter)" />
|
(filter.between !== undefined && filter.between ? ' (Bitiş)' : '')
|
||||||
<form-select
|
"
|
||||||
v-if="filter.filter.range !== undefined && filter.filter.range"
|
@change="UpdateFilter(filter, 1)" />
|
||||||
:listData="filterOperator"
|
</div>
|
||||||
v-model="localFilterData[filter.name + 'op']"
|
</template>
|
||||||
@change="UpdateFilter(filter)" />
|
<template v-if="filter.type === 'date'">
|
||||||
</div>
|
<div class="panel-content-item">
|
||||||
</template>
|
<form-date
|
||||||
<template v-if="filter.filter.type === 'text'">
|
type="date"
|
||||||
<div class="panel-content-item">
|
v-model="filter.values[0].val"
|
||||||
<form-input
|
:label="
|
||||||
v-model="localFilterData[filter.name]"
|
filter.title +
|
||||||
:label="filter.title"
|
(filter.between !== undefined && filter.between ? ' (Başlangıç)' : '')
|
||||||
@change="UpdateFilter(filter)" />
|
"
|
||||||
<form-select
|
@change="UpdateFilter(filter, 0)" />
|
||||||
v-if="filter.filter.range !== undefined && filter.filter.range"
|
<form-select
|
||||||
:listData="filterOperator"
|
v-if="filter.range !== undefined && filter.range"
|
||||||
v-model="localFilterData[filter.name + 'op']"
|
:listData="filterOperator"
|
||||||
@change="UpdateFilter(filter)" />
|
v-model="filter.values[0].op"
|
||||||
</div>
|
@change="UpdateFilter(filter, 0)"
|
||||||
</template>
|
label="Operator" />
|
||||||
<template v-if="filter.filter.type === 'select'">
|
<form-date
|
||||||
<div class="panel-content-item">
|
v-if="filter.between !== undefined && filter.between"
|
||||||
<form-select
|
type="date"
|
||||||
:listData="filter.filter.data"
|
v-model="filter.values[1].val"
|
||||||
:listText="filter.filter.listText"
|
:label="
|
||||||
:listVal="filter.filter.listVal"
|
filter.title +
|
||||||
:extraData="filter"
|
(filter.between !== undefined && filter.between ? ' (Bitiş)' : '')
|
||||||
:label="filter.title"
|
"
|
||||||
v-model="localFilterData[filter.filter.filterId || filter.name] as number"
|
@change="UpdateFilter(filter, 1)" />
|
||||||
@change="UpdateFilterSelect"
|
</div>
|
||||||
clearable />
|
</template>
|
||||||
</div>
|
<template v-if="filter.type === 'text'">
|
||||||
</template>
|
<div class="panel-content-item">
|
||||||
|
<form-input
|
||||||
|
v-model="filter.values[0].val"
|
||||||
|
:label="filter.title"
|
||||||
|
@change="UpdateFilter(filter, 0)" />
|
||||||
|
<form-select
|
||||||
|
v-if="filter.range !== undefined && filter.range"
|
||||||
|
:listData="filterOperator"
|
||||||
|
v-model="filter.values[0].op"
|
||||||
|
@change="UpdateFilter(filter, 0)"
|
||||||
|
label="Operator" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-if="filter.type === 'select'">
|
||||||
|
<div class="panel-content-item">
|
||||||
|
<form-select
|
||||||
|
:listData="filterHead[filter.hIndex].filter.data"
|
||||||
|
:listText="filterHead[filter.hIndex].filter.listText"
|
||||||
|
:listVal="filterHead[filter.hIndex].filter.listVal"
|
||||||
|
:extraData="{ f: filter, k: filterHead[filter.hIndex].filter.listText }"
|
||||||
|
:label="filter.title"
|
||||||
|
v-model="filter.values[0].val"
|
||||||
|
@change="UpdateFilterSelect"
|
||||||
|
clearable />
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, onBeforeMount, nextTick } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { useRouter, useRoute } from 'vue-router'
|
|
||||||
const router = useRouter()
|
|
||||||
const route = useRoute()
|
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
filterHead: Record<string, any>
|
filterHead: Record<string, any>[]
|
||||||
filterParams: Record<string, any>
|
filterParams: Record<string, any>[]
|
||||||
isUseRoute?: boolean
|
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const emit = defineEmits(['update:filterParams'])
|
const emit = defineEmits(['update:filterParams'])
|
||||||
|
const localFilterParams = ref<Record<string, any>[]>(props.filterParams)
|
||||||
const localFilterData = reactive<Record<string, any>>({})
|
|
||||||
const localFilterParams = reactive<Record<string, any>>(
|
|
||||||
Object.assign(props.filterParams)
|
|
||||||
)
|
|
||||||
const filterOperator = ref<string[]>(['=', '<', '>'])
|
const filterOperator = ref<string[]>(['=', '<', '>'])
|
||||||
|
|
||||||
const createFilterData = () => {
|
const UpdateFilter = (filter: Record<string, any>, index: number) => {
|
||||||
props.filterHead.forEach((d: Record<string, any>) => {
|
const allEmpty: boolean = filter.values.every(
|
||||||
if (d.filter !== undefined) {
|
(obj: Record<string, any>) => obj.val === ''
|
||||||
let filterKey = d.filter.filterId || d.name
|
)
|
||||||
localFilterData[filterKey] = ''
|
if (filter.values[index].val === '') filter.values[index].text = ''
|
||||||
localFilterData[filterKey + 'op'] = '='
|
filter.filter = !allEmpty
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
Object.keys(localFilterParams).forEach((k, i) => {
|
|
||||||
localFilterData[k] = localFilterParams[k].val
|
|
||||||
localFilterData[k + 'op'] = localFilterParams[k].op
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const UpdateFilter = (k: Record<string, any>) => {
|
|
||||||
let filterKey = k.filter.filterId || k.name
|
|
||||||
if (localFilterData[filterKey] !== '') {
|
|
||||||
localFilterParams[filterKey] = {}
|
|
||||||
localFilterParams[filterKey].val = localFilterData[filterKey]
|
|
||||||
localFilterParams[filterKey].op = localFilterData[filterKey + 'op']
|
|
||||||
localFilterParams[filterKey].title = k.title
|
|
||||||
} else delete localFilterParams[filterKey]
|
|
||||||
|
|
||||||
emit('update:filterParams', localFilterParams)
|
|
||||||
}
|
}
|
||||||
const UpdateFilterSelect = (
|
const UpdateFilterSelect = (
|
||||||
e: Event,
|
e: Event,
|
||||||
@ -109,20 +106,13 @@
|
|||||||
d: Record<string, any>,
|
d: Record<string, any>,
|
||||||
ext: Record<string, any>
|
ext: Record<string, any>
|
||||||
) => {
|
) => {
|
||||||
let filterKey = ext.filter.filterId || ext.name
|
if (v !== '' && v !== null) {
|
||||||
if (v !== '' && v !== null && localFilterData[filterKey] !== '') {
|
ext.f.values[0].val = v
|
||||||
localFilterParams[filterKey] = {}
|
ext.f.values[0].text = d[ext.k]
|
||||||
localFilterParams[filterKey].val = localFilterData[filterKey]
|
ext.f.filter = true
|
||||||
localFilterParams[filterKey].op = localFilterData[filterKey + 'op']
|
|
||||||
localFilterParams[filterKey].title = ext.title
|
|
||||||
localFilterParams[filterKey].text = d[ext.filter.listText]
|
|
||||||
} else {
|
} else {
|
||||||
delete localFilterParams[filterKey]
|
ext.f.filter = false
|
||||||
|
ext.f.values[0].text = ''
|
||||||
}
|
}
|
||||||
emit('update:filterParams', localFilterParams)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onBeforeMount(() => {
|
|
||||||
createFilterData()
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, computed, onMounted, onBeforeMount, watch } from 'vue'
|
import { ref, computed, onMounted, onBeforeMount, watch, nextTick } from 'vue'
|
||||||
import { useGlobalStore } from '@/stores/globalStore'
|
import { useGlobalStore } from '@/stores/globalStore'
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
import { useRouter, useRoute } from 'vue-router'
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
@ -85,8 +85,10 @@
|
|||||||
currentTab.value = Number(d)
|
currentTab.value = Number(d)
|
||||||
}
|
}
|
||||||
if (props.isUseRoute) {
|
if (props.isUseRoute) {
|
||||||
router.push({
|
nextTick(() => {
|
||||||
params: { ...route.params, tabid: props.tabList[currentTab.value].id }
|
router.push({
|
||||||
|
params: { ...route.params, tabid: props.tabList[currentTab.value].id }
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
CalculateNavPosition()
|
CalculateNavPosition()
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import FormInput from './FormInput.vue'
|
|||||||
import FormDate from './FormDate.vue'
|
import FormDate from './FormDate.vue'
|
||||||
import FormFile from './FormFile.vue'
|
import FormFile from './FormFile.vue'
|
||||||
import FormTextarea from './FormTextarea.vue'
|
import FormTextarea from './FormTextarea.vue'
|
||||||
import FormQuill from './FormQuill.vue'
|
|
||||||
import FormSummer from './FormSummer.vue'
|
import FormSummer from './FormSummer.vue'
|
||||||
import FormSelect from './FormSelect.vue'
|
import FormSelect from './FormSelect.vue'
|
||||||
import FormRadio from './FormRadio.vue'
|
import FormRadio from './FormRadio.vue'
|
||||||
@ -25,7 +24,6 @@ export {
|
|||||||
FormDate,
|
FormDate,
|
||||||
FormFile,
|
FormFile,
|
||||||
FormTextarea,
|
FormTextarea,
|
||||||
FormQuill,
|
|
||||||
FormSummer,
|
FormSummer,
|
||||||
FormSelect,
|
FormSelect,
|
||||||
FormRadio,
|
FormRadio,
|
||||||
|
|||||||
@ -5,6 +5,23 @@ import router from '@/router'
|
|||||||
axios.defaults.baseURL = import.meta.env.VITE_API_URL
|
axios.defaults.baseURL = import.meta.env.VITE_API_URL
|
||||||
//axios.defaults.timeout = 2000;
|
//axios.defaults.timeout = 2000;
|
||||||
axios.defaults.headers['Content-Type'] = 'application/json; charset=utf-8'
|
axios.defaults.headers['Content-Type'] = 'application/json; charset=utf-8'
|
||||||
|
//Filtrelerde aynı key birden fazla parametre array ile eklendiğinde url oluştururken [] ekleyerek oluşturmasını engellemek için serializer eklendi
|
||||||
|
axios.defaults.paramsSerializer = (params) => {
|
||||||
|
const queryParts: string[] = []
|
||||||
|
|
||||||
|
for (const key in params) {
|
||||||
|
const value = params[key]
|
||||||
|
if (Array.isArray(value)) {
|
||||||
|
value.forEach((v) => {
|
||||||
|
queryParts.push(`${key}=${encodeURIComponent(v)}`)
|
||||||
|
})
|
||||||
|
} else if (value !== undefined && value !== null) {
|
||||||
|
queryParts.push(`${key}=${encodeURIComponent(value)}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return queryParts.join('&')
|
||||||
|
}
|
||||||
import { useDataStore } from '@/stores/dataStore'
|
import { useDataStore } from '@/stores/dataStore'
|
||||||
|
|
||||||
// İstek Öncesinde Çalışacak Bir Fonksiyon
|
// İstek Öncesinde Çalışacak Bir Fonksiyon
|
||||||
|
|||||||
@ -18,16 +18,27 @@
|
|||||||
listVal="islemId"
|
listVal="islemId"
|
||||||
v-model="piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId"
|
v-model="piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId"
|
||||||
required
|
required
|
||||||
:invalidText="piyangoOnayValidationStore.invalidTexts.onayDurumuIslemTipiId" />
|
:invalidText="piyangoOnayValidationStore.invalidTexts.onayDurumuIslemTipiId">
|
||||||
<template v-if="piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4">
|
<template #option="{ optionData }">
|
||||||
<form-input
|
<span
|
||||||
modelKey="izinSayisi"
|
v-if="optionData && optionData.tipAdi"
|
||||||
v-model="piyangoOnayStore.piyangoOnayForm.izinSayisi"
|
class="islem-status-badge"
|
||||||
required
|
:class="piyangoStore.GetIslemStatusClass(optionData.tipAdi)">
|
||||||
label="İzin Sayı No"
|
{{ optionData.tipAdi }}
|
||||||
placeholder="İzin Sayı No"
|
</span>
|
||||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinSayisi"
|
<span v-else>{{ optionData?.tipAdi || optionData }}</span>
|
||||||
@keyup="OnKeyup" />
|
</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
|
<form-date
|
||||||
type="date"
|
type="date"
|
||||||
required
|
required
|
||||||
@ -36,12 +47,50 @@
|
|||||||
label="İzin Tarihi"
|
label="İzin Tarihi"
|
||||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinTarihi"
|
:invalidText="piyangoOnayValidationStore.invalidTexts.izinTarihi"
|
||||||
@change="OnKeyup" />
|
@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
|
<form-textarea
|
||||||
v-model="piyangoOnayStore.piyangoOnayForm.izinAciklamasi"
|
v-model="piyangoOnayStore.piyangoOnayForm.izinAciklamasi"
|
||||||
:invalidText="piyangoOnayValidationStore.invalidTexts.izinAciklamasi"
|
:invalidText="piyangoOnayValidationStore.invalidTexts.izinAciklamasi"
|
||||||
label="İzin Açıklaması"
|
label="İzin Açıklaması"
|
||||||
@keyup="OnKeyup" />
|
@keyup="OnKeyup" />
|
||||||
</template>
|
</template>
|
||||||
|
<template v-if="showIzinVerildiFields">
|
||||||
|
<form-select
|
||||||
|
label="Müdürlük"
|
||||||
|
:listData="mudurlukListesi"
|
||||||
|
listText="name"
|
||||||
|
listVal="id"
|
||||||
|
v-model="piyangoOnayStore.piyangoOnayForm.mudurlukId"
|
||||||
|
required
|
||||||
|
:invalidText="piyangoOnayValidationStore.invalidTexts.mudurlukId"
|
||||||
|
@change="OnKeyup" />
|
||||||
|
<form-select
|
||||||
|
label="Çekiliş Görevlisi"
|
||||||
|
:listData="cekilisGorevlisiListesi"
|
||||||
|
listText="name"
|
||||||
|
listVal="id"
|
||||||
|
v-model="piyangoOnayStore.piyangoOnayForm.cekilisGorevlisiId"
|
||||||
|
required
|
||||||
|
:invalidText="piyangoOnayValidationStore.invalidTexts.cekilisGorevlisiId"
|
||||||
|
@change="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
|
<form-file
|
||||||
v-model="piyangoOnayStore.piyangoOnayForm.file"
|
v-model="piyangoOnayStore.piyangoOnayForm.file"
|
||||||
elclass="panel-documents-item"
|
elclass="panel-documents-item"
|
||||||
@ -55,7 +104,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onBeforeMount } from 'vue'
|
import { onBeforeMount, computed, ref } from 'vue'
|
||||||
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
|
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
|
||||||
const piyangoOnayStore = usePiyangoOnayStore()
|
const piyangoOnayStore = usePiyangoOnayStore()
|
||||||
import { usePiyangoOnayValidationStore } from '../../validation/piyangoOnayValidationStore'
|
import { usePiyangoOnayValidationStore } from '../../validation/piyangoOnayValidationStore'
|
||||||
@ -66,6 +115,62 @@
|
|||||||
const piyangoDataStore = usePiyangoDataStore()
|
const piyangoDataStore = usePiyangoDataStore()
|
||||||
import { usePiyangoServices } from '../../service/piyangoServices'
|
import { usePiyangoServices } from '../../service/piyangoServices'
|
||||||
const piyangoServices = usePiyangoServices()
|
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 showIzinVerildiFields = computed<boolean>(() => {
|
||||||
|
return (
|
||||||
|
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
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 cekilisGorevlisiListesi = ref<Record<string, any>[]>([
|
||||||
|
{ id: 1, name: 'Antalya Şube Müdürlüğü' },
|
||||||
|
{ id: 2, name: 'Gaziantep Şube Müdürlüğü' },
|
||||||
|
{ id: 3, name: 'Aksaray Şube Müdürlüğü' },
|
||||||
|
{ id: 4, name: 'Kadıköy Şube Müdürlüğü' },
|
||||||
|
{ id: 5, name: 'Karşıyaka Şube Müdürlüğü' },
|
||||||
|
{ id: 6, name: 'Muğla Şube Müdürlüğü' },
|
||||||
|
{ id: 7, name: 'Trabzon Şube Müdürlüğü' },
|
||||||
|
{ id: 8, name: 'Noter' },
|
||||||
|
{ id: 9, name: 'Başkanlık Personeli' }
|
||||||
|
])
|
||||||
|
|
||||||
|
const mudurlukListesi = ref<Record<string, any>[]>([
|
||||||
|
{ id: 1, name: '1 No\'lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü' },
|
||||||
|
{ id: 2, name: '2 No\'lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü' },
|
||||||
|
{ id: 3, name: '3 No\'lu Özel Çekilişler İzin ve Takip Şubesi Müdürlüğü' }
|
||||||
|
])
|
||||||
|
|
||||||
const OnKeyup = () => {
|
const OnKeyup = () => {
|
||||||
piyangoOnayValidationStore.formChanged = true
|
piyangoOnayValidationStore.formChanged = true
|
||||||
|
|||||||
@ -8,7 +8,8 @@
|
|||||||
:apiList="'OnayDurumu/GetSonOnayDurumlariList/' + piyangoStore.selectedLottery"
|
:apiList="'OnayDurumu/GetSonOnayDurumlariList/' + piyangoStore.selectedLottery"
|
||||||
apiText="Piyango Onay Log Listesi"
|
apiText="Piyango Onay Log Listesi"
|
||||||
page="form"
|
page="form"
|
||||||
:refresh="piyangoOnayStore.refreshList" />
|
:refresh="piyangoOnayStore.refreshList"
|
||||||
|
:rowActions="rowActions" />
|
||||||
<panel-wrapper
|
<panel-wrapper
|
||||||
v-if="piyangoOnayStore.onayFormPanel"
|
v-if="piyangoOnayStore.onayFormPanel"
|
||||||
v-model="piyangoOnayStore.onayFormPanel"
|
v-model="piyangoOnayStore.onayFormPanel"
|
||||||
@ -40,6 +41,10 @@
|
|||||||
const piyangoStore = usePiyangoStore()
|
const piyangoStore = usePiyangoStore()
|
||||||
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
|
import { usePiyangoDataStore } from '../../stores/piyangoDataStore'
|
||||||
const piyangoDataStore = usePiyangoDataStore()
|
const piyangoDataStore = usePiyangoDataStore()
|
||||||
|
import { useDialogStore } from '@/components/global/dialogStore'
|
||||||
|
const dialogStore = useDialogStore()
|
||||||
|
import { useDataStore } from '@/stores/dataStore'
|
||||||
|
const dataStore = useDataStore()
|
||||||
|
|
||||||
const loaded = ref<boolean>(false)
|
const loaded = ref<boolean>(false)
|
||||||
|
|
||||||
@ -59,7 +64,7 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -72,6 +77,11 @@
|
|||||||
name: 'onayDurumuIslemTipiAdi',
|
name: 'onayDurumuIslemTipiAdi',
|
||||||
title: 'İşlem',
|
title: 'İşlem',
|
||||||
sort: true,
|
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: {
|
filter: {
|
||||||
type: 'select',
|
type: 'select',
|
||||||
data: piyangoOnayDurumlari,
|
data: piyangoOnayDurumlari,
|
||||||
@ -100,19 +110,71 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'izinTarihi',
|
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',
|
name: 'izinAciklamasi',
|
||||||
title: 'İzin Açıklaması'
|
title: 'İzin Açıklaması'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'kapsamDisiSebebi',
|
||||||
|
title: 'Kapsam Dışı Sebebi'
|
||||||
|
},
|
||||||
])
|
])
|
||||||
|
|
||||||
const EditOnay = (d: Record<string, any>) => {
|
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
|
piyangoOnayStore.onayFormPanel = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const DeleteRowPop = (data: Record<string, any>, i: number) => {
|
||||||
|
dialogStore.CreateDialog({
|
||||||
|
title: 'Onay Durumu Sil',
|
||||||
|
id: 'deleteonaydurumu',
|
||||||
|
content: 'Onay durumunu silmek istediğinize emin misiniz?',
|
||||||
|
closeText: 'Vazgeç',
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
label: 'Sil',
|
||||||
|
type: 'alert',
|
||||||
|
function: () => DeleteRow(data.id)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const DeleteRow = async (id: number | string) => {
|
||||||
|
var dt = await dataStore.dataDelete('OnayDurumu/' + id, {
|
||||||
|
toast: { toast: 'Onay durumu başarıyla silindi', type: 'success' }
|
||||||
|
})
|
||||||
|
|
||||||
|
if (dt !== 'errorfalse') {
|
||||||
|
dialogStore.CloseDialog('deleteonaydurumu')
|
||||||
|
piyangoOnayStore.refreshList = false
|
||||||
|
setTimeout(() => {
|
||||||
|
piyangoOnayStore.refreshList = true
|
||||||
|
}, 10)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const rowActions = ref<Record<string, any>[]>([
|
||||||
|
{
|
||||||
|
text: 'Sil',
|
||||||
|
class: 'alert',
|
||||||
|
action: DeleteRowPop
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
onBeforeMount(async () => {
|
onBeforeMount(async () => {
|
||||||
loaded.value = true
|
loaded.value = true
|
||||||
})
|
})
|
||||||
|
|||||||
@ -32,11 +32,11 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'islemYapanKullanici.email',
|
name: 'islemYapanKullanici',
|
||||||
title: 'Kişi',
|
title: 'Kişi',
|
||||||
sort: true,
|
sort: true,
|
||||||
style: { width: '20%' }
|
style: { width: '20%' }
|
||||||
|
|||||||
@ -108,6 +108,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const OnIkramiyeChanged = (e: Event, val: any, item: Record<string, any>) => {
|
const OnIkramiyeChanged = (e: Event, val: any, item: Record<string, any>) => {
|
||||||
|
|
||||||
|
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.ikramiyeId = item.id
|
||||||
|
|
||||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.tahhutEdilenIkramiye = `
|
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.tahhutEdilenIkramiye = `
|
||||||
${item.cinsi}, ${item.marka}, ${item.model}, (${item.asilTalihliAdedi} adet)
|
${item.cinsi}, ${item.marka}, ${item.model}, (${item.asilTalihliAdedi} adet)
|
||||||
`
|
`
|
||||||
|
|||||||
@ -7,16 +7,27 @@
|
|||||||
listVal="islemId"
|
listVal="islemId"
|
||||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId"
|
v-model="piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId"
|
||||||
required
|
required
|
||||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.onayDurumuIslemTipiId" />
|
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.onayDurumuIslemTipiId">
|
||||||
<template v-if="piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === 4">
|
<template #option="{ optionData }">
|
||||||
<form-input
|
<span
|
||||||
modelKey="izinSayisi"
|
v-if="optionData && optionData.tipAdi"
|
||||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.izinSayisi"
|
class="islem-status-badge"
|
||||||
required
|
:class="piyangoStore.GetIslemStatusClass(optionData.tipAdi)">
|
||||||
label="İzin Sayı No"
|
{{ optionData.tipAdi }}
|
||||||
placeholder="İzin Sayı No"
|
</span>
|
||||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinSayisi"
|
<span v-else>{{ optionData?.tipAdi || optionData }}</span>
|
||||||
@keyup="OnKeyup" />
|
</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
|
<form-date
|
||||||
type="date"
|
type="date"
|
||||||
required
|
required
|
||||||
@ -25,12 +36,30 @@
|
|||||||
label="İzin Tarihi"
|
label="İzin Tarihi"
|
||||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinTarihi"
|
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinTarihi"
|
||||||
@change="OnKeyup" />
|
@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
|
<form-textarea
|
||||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi"
|
v-model="piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi"
|
||||||
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinAciklamasi"
|
:invalidText="piyangoOnayValidationStore.invalidTextsPanel.izinAciklamasi"
|
||||||
label="İzin Açıklaması"
|
label="İzin Açıklaması"
|
||||||
@keyup="OnKeyup" />
|
@keyup="OnKeyup" />
|
||||||
</template>
|
</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
|
<form-file
|
||||||
v-model="piyangoOnayStore.piyangoPanelOnayForm.file"
|
v-model="piyangoOnayStore.piyangoPanelOnayForm.file"
|
||||||
elclass="panel-documents-item"
|
elclass="panel-documents-item"
|
||||||
@ -43,7 +72,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onBeforeMount } from 'vue'
|
import { onBeforeMount, computed, ref } from 'vue'
|
||||||
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
|
import { usePiyangoOnayStore } from '../../stores/piyangoOnayStore'
|
||||||
const piyangoOnayStore = usePiyangoOnayStore()
|
const piyangoOnayStore = usePiyangoOnayStore()
|
||||||
import { usePiyangoOnayValidationStore } from '../../validation/piyangoOnayValidationStore'
|
import { usePiyangoOnayValidationStore } from '../../validation/piyangoOnayValidationStore'
|
||||||
@ -52,6 +81,38 @@
|
|||||||
const piyangoDataStore = usePiyangoDataStore()
|
const piyangoDataStore = usePiyangoDataStore()
|
||||||
import { usePiyangoServices } from '../../service/piyangoServices'
|
import { usePiyangoServices } from '../../service/piyangoServices'
|
||||||
const piyangoServices = usePiyangoServices()
|
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 = () => {
|
const OnKeyup = () => {
|
||||||
piyangoOnayValidationStore.formChanged = true
|
piyangoOnayValidationStore.formChanged = true
|
||||||
|
|||||||
@ -34,14 +34,14 @@
|
|||||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundCount" />
|
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundCount" />
|
||||||
<form-file
|
<form-file
|
||||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDocumentUrl"
|
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDocumentUrl"
|
||||||
label='Klasör Arşiv'
|
label='İade Yazısı'
|
||||||
elclass="panel-documents-item"
|
elclass="panel-documents-item"
|
||||||
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundDocumentUrl"
|
:invalidText="piyangoTeminatValidationStore.invalidTexts.refundDocumentUrl"
|
||||||
@change="OnKeyup" />
|
@change="OnKeyup" />
|
||||||
<form-input
|
<form-input
|
||||||
modelKey="refundDescription"
|
modelKey="refundDescription"
|
||||||
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDescription"
|
v-model="piyangoTeminatStore.piyangoTeminatFormData.refundDescription"
|
||||||
label="İade Açıklama"
|
label="Klasör Arşiv No"
|
||||||
@keyup="OnKeyup" />
|
@keyup="OnKeyup" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -62,7 +62,6 @@ export const usePiyangoKatilimciService = defineStore('piyangoKatilimciService',
|
|||||||
|
|
||||||
const KatilimciFileUpload = async () => {
|
const KatilimciFileUpload = async () => {
|
||||||
if (piyangoKatilimciValidationStore.FileFormCheck()) {
|
if (piyangoKatilimciValidationStore.FileFormCheck()) {
|
||||||
console.log('Katilimci File Upload')
|
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
formData.append('excelFile', piyangoKatilimciStore.piyangoKatilimciFileFormData.excelFile)
|
formData.append('excelFile', piyangoKatilimciStore.piyangoKatilimciFileFormData.excelFile)
|
||||||
let dt: any
|
let dt: any
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import { usePiyangoStore } from '../stores/piyangoStore'
|
|||||||
import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
|
import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
|
||||||
import { usePiyangoOnayValidationStore } from '../validation/piyangoOnayValidationStore'
|
import { usePiyangoOnayValidationStore } from '../validation/piyangoOnayValidationStore'
|
||||||
import { useUsersStore } from '@/stores/usersStore'
|
import { useUsersStore } from '@/stores/usersStore'
|
||||||
|
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
|
||||||
|
|
||||||
export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
||||||
const dataStore = useDataStore()
|
const dataStore = useDataStore()
|
||||||
@ -11,6 +12,18 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
|||||||
const piyangoOnayStore = usePiyangoOnayStore()
|
const piyangoOnayStore = usePiyangoOnayStore()
|
||||||
const piyangoOnayValidationStore = usePiyangoOnayValidationStore()
|
const piyangoOnayValidationStore = usePiyangoOnayValidationStore()
|
||||||
const usersStore = useUsersStore()
|
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 () => {
|
const SaveOnayDurum = async () => {
|
||||||
if (piyangoOnayValidationStore.FormCheck()) {
|
if (piyangoOnayValidationStore.FormCheck()) {
|
||||||
@ -18,11 +31,14 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
|||||||
let form: any
|
let form: any
|
||||||
let dataForm = new FormData()
|
let dataForm = new FormData()
|
||||||
|
|
||||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId !== 4) {
|
if (!shouldKeepIzinFields(piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId)) {
|
||||||
piyangoOnayStore.piyangoOnayForm.izinSayisi = ''
|
piyangoOnayStore.piyangoOnayForm.izinSayisi = ''
|
||||||
piyangoOnayStore.piyangoOnayForm.izinTarihi = ''
|
piyangoOnayStore.piyangoOnayForm.izinTarihi = ''
|
||||||
piyangoOnayStore.piyangoOnayForm.izinAciklamasi = ''
|
piyangoOnayStore.piyangoOnayForm.izinAciklamasi = ''
|
||||||
}
|
}
|
||||||
|
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId !== getKapsamDisiId()) {
|
||||||
|
piyangoOnayStore.piyangoOnayForm.kapsamDisiSebebi = null
|
||||||
|
}
|
||||||
dataForm.append(
|
dataForm.append(
|
||||||
'onayDurumuIslemTipiId',
|
'onayDurumuIslemTipiId',
|
||||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
|
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
|
||||||
@ -30,10 +46,21 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
|||||||
dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
|
dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
|
||||||
dataForm.append('kisiId', String(usersStore.userId))
|
dataForm.append('kisiId', String(usersStore.userId))
|
||||||
dataForm.append('file', piyangoOnayStore.piyangoOnayForm.file)
|
dataForm.append('file', piyangoOnayStore.piyangoOnayForm.file)
|
||||||
dataForm.append('aciklama', piyangoOnayStore.piyangoOnayForm.aciklama)
|
dataForm.append('aciklama', piyangoOnayStore.piyangoOnayForm.aciklama || '')
|
||||||
dataForm.append('izinSayisi', piyangoOnayStore.piyangoOnayForm.izinSayisi)
|
dataForm.append('izinSayisi', piyangoOnayStore.piyangoOnayForm.izinSayisi || '')
|
||||||
dataForm.append('izinTarihi', piyangoOnayStore.piyangoOnayForm.izinTarihi)
|
dataForm.append('izinTarihi', piyangoOnayStore.piyangoOnayForm.izinTarihi || '')
|
||||||
dataForm.append('izinAciklamasi', piyangoOnayStore.piyangoOnayForm.izinAciklamasi)
|
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/', {
|
form = await dataStore.dataPost('OnayDurumu/', {
|
||||||
data: dataForm,
|
data: dataForm,
|
||||||
@ -61,25 +88,33 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
|||||||
let form: any
|
let form: any
|
||||||
let dataForm = new FormData()
|
let dataForm = new FormData()
|
||||||
|
|
||||||
if (piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId !== 4) {
|
if (!shouldKeepIzinFields(piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId)) {
|
||||||
piyangoOnayStore.piyangoPanelOnayForm.izinSayisi = ''
|
piyangoOnayStore.piyangoPanelOnayForm.izinSayisi = ''
|
||||||
piyangoOnayStore.piyangoPanelOnayForm.izinTarihi = ''
|
piyangoOnayStore.piyangoPanelOnayForm.izinTarihi = ''
|
||||||
piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi = ''
|
piyangoOnayStore.piyangoPanelOnayForm.izinAciklamasi = ''
|
||||||
}
|
}
|
||||||
dataForm.append(
|
if (piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId !== getKapsamDisiId()) {
|
||||||
'onayDurumuIslemTipiId',
|
piyangoOnayStore.piyangoPanelOnayForm.kapsamDisiSebebi = null
|
||||||
piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId
|
}
|
||||||
)
|
dataForm.append('onayDurumuIslemTipiId', piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId)
|
||||||
dataForm.append('id', piyangoOnayStore.piyangoPanelOnayForm.id)
|
dataForm.append('id', piyangoOnayStore.piyangoPanelOnayForm.id)
|
||||||
dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
|
dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery))
|
||||||
dataForm.append('kisiId', String(usersStore.userId))
|
dataForm.append('kisiId', String(usersStore.userId))
|
||||||
dataForm.append('file', piyangoOnayStore.piyangoPanelOnayForm.file)
|
dataForm.append('file', piyangoOnayStore.piyangoPanelOnayForm.file)
|
||||||
dataForm.append('aciklama', piyangoOnayStore.piyangoPanelOnayForm.aciklama)
|
dataForm.append('aciklama', piyangoOnayStore.piyangoPanelOnayForm.aciklama || '')
|
||||||
dataForm.append('izinSayisi', piyangoOnayStore.piyangoPanelOnayForm.izinSayisi)
|
dataForm.append('izinSayisi', piyangoOnayStore.piyangoPanelOnayForm.izinSayisi || '')
|
||||||
dataForm.append('izinTarihi', piyangoOnayStore.piyangoPanelOnayForm.izinTarihi)
|
dataForm.append('izinTarihi', piyangoOnayStore.piyangoPanelOnayForm.izinTarihi || '')
|
||||||
dataForm.append(
|
dataForm.append(
|
||||||
'izinAciklamasi',
|
'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(
|
form = await dataStore.dataPut(
|
||||||
@ -92,7 +127,11 @@ export const usePiyangoOnayService = defineStore('piyangoOnayService', () => {
|
|||||||
)
|
)
|
||||||
|
|
||||||
if (form !== 'errorfalse') {
|
if (form !== 'errorfalse') {
|
||||||
piyangoOnayStore.refreshList = true
|
piyangoOnayStore.refreshList = false
|
||||||
|
setTimeout(() => {
|
||||||
|
piyangoOnayStore.refreshList = true
|
||||||
|
}, 10)
|
||||||
|
piyangoOnayStore.onayFormPanel = false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
piyangoOnayValidationStore.isPanelFormValid = true
|
piyangoOnayValidationStore.isPanelFormValid = true
|
||||||
|
|||||||
@ -12,7 +12,7 @@ export const connectToHub = async () => {
|
|||||||
|
|
||||||
connection = new signalR.HubConnectionBuilder()
|
connection = new signalR.HubConnectionBuilder()
|
||||||
.withUrl(import.meta.env.VITE_SOCKET_URL, {
|
.withUrl(import.meta.env.VITE_SOCKET_URL, {
|
||||||
withCredentials: true,
|
withCredentials: false,
|
||||||
skipNegotiation: true, // WebSocket kullanırken negotiation atlanabilir
|
skipNegotiation: true, // WebSocket kullanırken negotiation atlanabilir
|
||||||
transport: signalR.HttpTransportType.WebSockets
|
transport: signalR.HttpTransportType.WebSockets
|
||||||
})
|
})
|
||||||
|
|||||||
@ -2,10 +2,13 @@ import { defineStore } from 'pinia'
|
|||||||
import { ref, reactive } from 'vue'
|
import { ref, reactive } from 'vue'
|
||||||
import { useGlobalStore } from '@/stores/globalStore'
|
import { useGlobalStore } from '@/stores/globalStore'
|
||||||
import { usePiyangoStore } from './piyangoStore'
|
import { usePiyangoStore } from './piyangoStore'
|
||||||
|
import { useUsersStore } from '@/stores/usersStore'
|
||||||
|
|
||||||
|
|
||||||
export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore', () => {
|
export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore', () => {
|
||||||
const globalStore = useGlobalStore()
|
const globalStore = useGlobalStore()
|
||||||
const piyangoStore = usePiyangoStore()
|
const piyangoStore = usePiyangoStore()
|
||||||
|
const usersStore = useUsersStore()
|
||||||
|
|
||||||
const baseDosyaKapamaData = reactive<Record<string, any>>({
|
const baseDosyaKapamaData = reactive<Record<string, any>>({
|
||||||
katilimSekli: '',
|
katilimSekli: '',
|
||||||
@ -49,6 +52,8 @@ export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore',
|
|||||||
teslimEdilenIkramiye: '',
|
teslimEdilenIkramiye: '',
|
||||||
alinmayanIkramiye: '',
|
alinmayanIkramiye: '',
|
||||||
aciklama: '',
|
aciklama: '',
|
||||||
|
duzenleyenId: usersStore.userId,
|
||||||
|
ikramiyeId:'',
|
||||||
cekilisId: piyangoStore.selectedLottery
|
cekilisId: piyangoStore.selectedLottery
|
||||||
})
|
})
|
||||||
const dosyaKapamaData = reactive<Record<string, any>>({})
|
const dosyaKapamaData = reactive<Record<string, any>>({})
|
||||||
|
|||||||
@ -15,7 +15,8 @@ export const usePiyangoOnayStore = defineStore('piyangoOnayStore', () => {
|
|||||||
file: '',
|
file: '',
|
||||||
izinSayisi: '',
|
izinSayisi: '',
|
||||||
izinTarihi: '',
|
izinTarihi: '',
|
||||||
izinAciklamasi: ''
|
izinAciklamasi: '',
|
||||||
|
kapsamDisiSebebi: null
|
||||||
})
|
})
|
||||||
const piyangoOnayForm = reactive<Record<string, any>>({})
|
const piyangoOnayForm = reactive<Record<string, any>>({})
|
||||||
const piyangoPanelOnayForm = reactive<Record<string, any>>({})
|
const piyangoPanelOnayForm = reactive<Record<string, any>>({})
|
||||||
|
|||||||
@ -131,13 +131,41 @@ export const usePiyangoStore = defineStore('piyangoStore', () => {
|
|||||||
Object.assign(lotteryData, baseLotteryData)
|
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 => {
|
const LoterryStatusClass = (d: any): string => {
|
||||||
let cls = lotteryStatusTypes.value.filter((v) => {
|
// Yeni renk sistemini kullan, ama back-grad sınıfı ekle (geriye dönük uyumluluk için)
|
||||||
return v.name === d
|
const statusClass = GetIslemStatusClass(d)
|
||||||
})
|
return 'islem-status-badge ' + statusClass
|
||||||
if (cls !== undefined && cls !== null && cls.length !== 0)
|
|
||||||
return 'back-grad-' + cls[0].class
|
|
||||||
else return 'back-grad-waiting'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const SetLotteryControlData = (data: Record<string, any>) => {
|
const SetLotteryControlData = (data: Record<string, any>) => {
|
||||||
@ -181,6 +209,7 @@ export const usePiyangoStore = defineStore('piyangoStore', () => {
|
|||||||
ResetLotteryData,
|
ResetLotteryData,
|
||||||
ResetLotteryContent,
|
ResetLotteryContent,
|
||||||
LoterryStatusClass,
|
LoterryStatusClass,
|
||||||
|
GetIslemStatusClass,
|
||||||
SetLotteryControlData
|
SetLotteryControlData
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,13 +1,15 @@
|
|||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import { ref, reactive } from 'vue'
|
import { ref, reactive, computed } from 'vue'
|
||||||
import { useValidationStore } from '@/stores/validationStore'
|
import { useValidationStore } from '@/stores/validationStore'
|
||||||
import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
|
import { usePiyangoOnayStore } from '../stores/piyangoOnayStore'
|
||||||
|
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
|
||||||
|
|
||||||
export const usePiyangoOnayValidationStore = defineStore(
|
export const usePiyangoOnayValidationStore = defineStore(
|
||||||
'piyangoOnayValidationStore',
|
'piyangoOnayValidationStore',
|
||||||
() => {
|
() => {
|
||||||
const validationStore = useValidationStore()
|
const validationStore = useValidationStore()
|
||||||
const piyangoOnayStore = usePiyangoOnayStore()
|
const piyangoOnayStore = usePiyangoOnayStore()
|
||||||
|
const piyangoDataStore = usePiyangoDataStore()
|
||||||
|
|
||||||
const formChanged = ref<boolean>(false)
|
const formChanged = ref<boolean>(false)
|
||||||
const isFormValid = ref<boolean>(true)
|
const isFormValid = ref<boolean>(true)
|
||||||
@ -15,6 +17,17 @@ export const usePiyangoOnayValidationStore = defineStore(
|
|||||||
const isPanelFormValid = ref<boolean>(true)
|
const isPanelFormValid = ref<boolean>(true)
|
||||||
const invalidTextsPanel = reactive<Record<string, any>>({})
|
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 => {
|
const FormCheck = (): boolean => {
|
||||||
Object.assign(invalidTexts, {})
|
Object.assign(invalidTexts, {})
|
||||||
|
|
||||||
@ -24,12 +37,12 @@ export const usePiyangoOnayValidationStore = defineStore(
|
|||||||
'onayDurumuIslemTipiId',
|
'onayDurumuIslemTipiId',
|
||||||
'Bir işlem tipi seçmelisinz.'
|
'Bir işlem tipi seçmelisinz.'
|
||||||
)
|
)
|
||||||
if (piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId === 4) {
|
if (shouldValidateIzinFields(piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId)) {
|
||||||
validationStore.IsFieldEmpty(
|
validationStore.IsFieldEmpty(
|
||||||
piyangoOnayStore.piyangoOnayForm,
|
piyangoOnayStore.piyangoOnayForm,
|
||||||
invalidTexts,
|
invalidTexts,
|
||||||
'izinSayisi',
|
'izinSayisi',
|
||||||
'İzin sayı no girmelisiniz.'
|
'İzin sayısı girmelisiniz.'
|
||||||
)
|
)
|
||||||
validationStore.IsFieldEmpty(
|
validationStore.IsFieldEmpty(
|
||||||
piyangoOnayStore.piyangoOnayForm,
|
piyangoOnayStore.piyangoOnayForm,
|
||||||
@ -38,6 +51,14 @@ export const usePiyangoOnayValidationStore = defineStore(
|
|||||||
'İzin tarihi seçmelisiniz.'
|
'İ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
|
isFormValid.value = Object.keys(invalidTexts).length === 0
|
||||||
return isFormValid.value
|
return isFormValid.value
|
||||||
}
|
}
|
||||||
@ -51,12 +72,12 @@ export const usePiyangoOnayValidationStore = defineStore(
|
|||||||
'onayDurumuIslemTipiId',
|
'onayDurumuIslemTipiId',
|
||||||
'Bir işlem tipi seçmelisinz.'
|
'Bir işlem tipi seçmelisinz.'
|
||||||
)
|
)
|
||||||
if (piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId === 4) {
|
if (shouldValidateIzinFields(piyangoOnayStore.piyangoPanelOnayForm.onayDurumuIslemTipiId)) {
|
||||||
validationStore.IsFieldEmpty(
|
validationStore.IsFieldEmpty(
|
||||||
piyangoOnayStore.piyangoPanelOnayForm,
|
piyangoOnayStore.piyangoPanelOnayForm,
|
||||||
invalidTextsPanel,
|
invalidTextsPanel,
|
||||||
'izinSayisi',
|
'izinSayisi',
|
||||||
'İzin sayı no girmelisiniz.'
|
'İzin sayısı girmelisiniz.'
|
||||||
)
|
)
|
||||||
validationStore.IsFieldEmpty(
|
validationStore.IsFieldEmpty(
|
||||||
piyangoOnayStore.piyangoPanelOnayForm,
|
piyangoOnayStore.piyangoPanelOnayForm,
|
||||||
@ -65,6 +86,14 @@ export const usePiyangoOnayValidationStore = defineStore(
|
|||||||
'İzin tarihi seçmelisiniz.'
|
'İ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
|
isPanelFormValid.value = Object.keys(invalidTextsPanel).length === 0
|
||||||
return isPanelFormValid.value
|
return isPanelFormValid.value
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<AdminLayout>
|
<AdminLayout>
|
||||||
<Breadcrumb currentPageText="Piyango Listesi" go="/"/>
|
<Breadcrumb currentPageText="Piyango Listesi" go="/" />
|
||||||
<div
|
<div
|
||||||
class="form-inner-comment waiting-d"
|
class="form-inner-comment waiting-d"
|
||||||
v-if="!usersStore.isPanelUser && usersStore.userApproveId !== 4">
|
v-if="!usersStore.isPanelUser && usersStore.userApproveId !== 4">
|
||||||
@ -17,14 +17,13 @@
|
|||||||
listText="Piyango"
|
listText="Piyango"
|
||||||
:addRoute="addApiControl"
|
:addRoute="addApiControl"
|
||||||
:apiList="apiList"
|
:apiList="apiList"
|
||||||
apiText="Piyango Listesi"
|
apiText="Piyango Listesi"
|
||||||
isUseRoute/>
|
isUseRoute />
|
||||||
</section>
|
</section>
|
||||||
</AdminLayout>
|
</AdminLayout>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, computed, onBeforeMount, onMounted } from 'vue'
|
import { ref, computed, onBeforeMount } from 'vue'
|
||||||
import { useRoute } from 'vue-router'
|
|
||||||
|
|
||||||
import AdminLayout from '@/layouts/AdminLayout.vue'
|
import AdminLayout from '@/layouts/AdminLayout.vue'
|
||||||
import { useDateStore } from '@/stores/dateStore'
|
import { useDateStore } from '@/stores/dateStore'
|
||||||
@ -32,6 +31,8 @@
|
|||||||
const dateStore = useDateStore()
|
const dateStore = useDateStore()
|
||||||
import { useUsersStore } from '@/stores/usersStore'
|
import { useUsersStore } from '@/stores/usersStore'
|
||||||
const usersStore = useUsersStore()
|
const usersStore = useUsersStore()
|
||||||
|
import { useGlobalStore } from '@/stores/globalStore'
|
||||||
|
const globalStore = useGlobalStore()
|
||||||
import { usePiyangoStore } from '../stores/piyangoStore'
|
import { usePiyangoStore } from '../stores/piyangoStore'
|
||||||
const piyangoStore = usePiyangoStore()
|
const piyangoStore = usePiyangoStore()
|
||||||
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
|
import { usePiyangoDataStore } from '../stores/piyangoDataStore'
|
||||||
@ -40,7 +41,6 @@
|
|||||||
const piyangoServices = usePiyangoServices()
|
const piyangoServices = usePiyangoServices()
|
||||||
|
|
||||||
import router from '@/router'
|
import router from '@/router'
|
||||||
const route = useRoute()
|
|
||||||
|
|
||||||
const loaded = ref<boolean>(false)
|
const loaded = ref<boolean>(false)
|
||||||
const apiList = ref<string>('')
|
const apiList = ref<string>('')
|
||||||
@ -70,129 +70,297 @@
|
|||||||
const tableHeader = computed<Record<string, any>[]>(() => {
|
const tableHeader = computed<Record<string, any>[]>(() => {
|
||||||
let header: Record<string, any>[] = []
|
let header: Record<string, any>[] = []
|
||||||
|
|
||||||
|
// 1. PİYANGO ID
|
||||||
header.push({
|
header.push({
|
||||||
name: 'piyangoId',
|
name: 'piyangoId',
|
||||||
title: 'Piyango Id',
|
title: 'Piyango ID',
|
||||||
sort: true,
|
sort: true,
|
||||||
style: { width: '10%' }
|
style: { width: '10%' }
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 2. MÜDÜRLÜK
|
||||||
if (usersStore.isAraciFirma || usersStore.isPanelUser) {
|
header.push({
|
||||||
header.push({ name: 'duzenleyen', title: 'Düzenleyen' })
|
name: 'mudurluk',
|
||||||
}
|
title: 'Müdürlük',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
header.push(
|
return v.mudurluk || ''
|
||||||
{
|
|
||||||
name: 'baslik',
|
|
||||||
title: 'Başlık',
|
|
||||||
sort: true,
|
|
||||||
style: { width: '15%' }
|
|
||||||
},
|
},
|
||||||
{
|
filter: {
|
||||||
name: 'piyangoamac',
|
type: 'text'
|
||||||
title: 'Piyango Amacı',
|
|
||||||
sort: true,
|
|
||||||
filter: {
|
|
||||||
type: 'select',
|
|
||||||
data: piyangoAmaclari.value,
|
|
||||||
listVal: 'id',
|
|
||||||
listText: 'amacAdi',
|
|
||||||
filterId: 'piyangoAmacId'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'olusturmaTarihi',
|
|
||||||
title: 'Oluşturulma Tarihi',
|
|
||||||
compute: (v: Record<string, any>): string => {
|
|
||||||
return dateStore.dateFormat({ date: v.olusturmaTarihi })
|
|
||||||
},
|
|
||||||
sort: true,
|
|
||||||
filter: {
|
|
||||||
type: 'date',
|
|
||||||
range: true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)
|
})
|
||||||
|
|
||||||
if (usersStore.isVakifDernek || usersStore.isPanelUser) {
|
// 3. PİYANGO AMACI
|
||||||
|
header.push({
|
||||||
|
name: 'piyangoamac',
|
||||||
|
title: 'Piyango Amacı',
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'select',
|
||||||
|
data: piyangoAmaclari.value,
|
||||||
|
listVal: 'id',
|
||||||
|
listText: 'amacAdi',
|
||||||
|
filterId: 'piyangoAmacId'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 4. DÜZENLEYEN (koşullu)
|
||||||
|
if (usersStore.isAraciFirma || usersStore.isPanelUser) {
|
||||||
header.push({
|
header.push({
|
||||||
name: 'cekilisTarihi',
|
name: 'duzenleyen',
|
||||||
title: 'Çekiliş Tarihi',
|
title: 'Düzenleyen',
|
||||||
compute: (v: Record<string, any>): string => {
|
|
||||||
if(v.piyangoAmacId === 3) return ''
|
|
||||||
else return dateStore.dateFormat({ date: v.cekilisTarihi })
|
|
||||||
},
|
|
||||||
sort: true,
|
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'text'
|
||||||
range: true
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (!usersStore.isVakifDernek || usersStore.isPanelUser) {
|
|
||||||
header.push(
|
|
||||||
{
|
|
||||||
name: 'baslangicTarihi',
|
|
||||||
title: 'Başlangıç Tarihi',
|
|
||||||
compute: (v: Record<string, any>): string => {
|
|
||||||
if (v.baslangicTarihi.includes('0001-')) return ''
|
|
||||||
else return dateStore.dateFormat({ date: v.baslangicTarihi })
|
|
||||||
},
|
|
||||||
sort: true,
|
|
||||||
filter: {
|
|
||||||
type: 'date',
|
|
||||||
range: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'bitisTarihi',
|
|
||||||
title: 'Bitis Tarihi',
|
|
||||||
compute: (v: Record<string, any>): string => {
|
|
||||||
if (v.bitisTarihi.includes('0001-')) return ''
|
|
||||||
else return dateStore.dateFormat({ date: v.bitisTarihi })
|
|
||||||
},
|
|
||||||
sort: true,
|
|
||||||
filter: {
|
|
||||||
type: 'date',
|
|
||||||
range: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
header.push(
|
// 5. ARACI FİRMA
|
||||||
{
|
header.push({
|
||||||
name: 'cekilisYontemi',
|
name: 'araciFirma',
|
||||||
title: 'Çekiliş Yöntemi',
|
title: 'Araci Firma',
|
||||||
sort: true,
|
compute: (v: Record<string, any>): string => {
|
||||||
filter: {
|
return v.araciFirma || ''
|
||||||
type: 'select',
|
|
||||||
data: cekilisYontemleri.value,
|
|
||||||
listVal: 'id',
|
|
||||||
listText: 'deger',
|
|
||||||
filterId: 'cekilisYontemiId'
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{ name: 'ikramiyeler', title: 'İkramiyeler', style: { width: '15%' } },
|
filter: {
|
||||||
{
|
type: 'text'
|
||||||
name: 'durum',
|
|
||||||
title: 'Durum',
|
|
||||||
style: { width: '10%' },
|
|
||||||
computeHtml: (v: Record<string, any>): string => {
|
|
||||||
return `<span class="back-grad ${piyangoStore.LoterryStatusClass(v.durum)}">
|
|
||||||
${v.durum}
|
|
||||||
</span>`
|
|
||||||
},
|
|
||||||
filter: {
|
|
||||||
type: 'select',
|
|
||||||
data: piyangoOnayDurumlari.value,
|
|
||||||
listVal: 'id',
|
|
||||||
listText: 'tipAdi',
|
|
||||||
filterId: 'durumId'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)
|
})
|
||||||
|
|
||||||
|
// 6. DURUM
|
||||||
|
header.push({
|
||||||
|
name: 'durum',
|
||||||
|
title: 'Durum',
|
||||||
|
style: { width: '10%' },
|
||||||
|
computeHtml: (v: Record<string, any>): string => {
|
||||||
|
return `<span class="${piyangoStore.LoterryStatusClass(v.durum)}">
|
||||||
|
${v.durum}
|
||||||
|
</span>`
|
||||||
|
},
|
||||||
|
filter: {
|
||||||
|
type: 'select',
|
||||||
|
data: piyangoOnayDurumlari.value,
|
||||||
|
listVal: 'id',
|
||||||
|
listText: 'tipAdi',
|
||||||
|
filterId: 'durumId'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 7. İZİN TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'izinTarihi',
|
||||||
|
title: 'İzin Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.izinTarihi || v.izinTarihi === null) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.izinTarihi })
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'date',
|
||||||
|
between: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 8. İZİN SAYISI
|
||||||
|
header.push({
|
||||||
|
name: 'izinSayisi',
|
||||||
|
title: 'İzin Sayısı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.izinSayisi || ''
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'text',
|
||||||
|
range: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 9. BAŞLANGIÇ TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'baslangicTarihi',
|
||||||
|
title: 'Başlangıç Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.baslangicTarihi || v.baslangicTarihi.includes('0001-')) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.baslangicTarihi })
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'date',
|
||||||
|
between: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 10. BİTİŞ TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'bitisTarihi',
|
||||||
|
title: 'Bitiş Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.bitisTarihi || v.bitisTarihi.includes('0001-')) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.bitisTarihi })
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'date',
|
||||||
|
between: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 11. ÇEKİLİŞ TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'cekilisTarihi',
|
||||||
|
title: 'Çekiliş Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.cekilisTarihi || v.cekilisTarihi.includes('0001-')) return ''
|
||||||
|
if (v.piyangoAmacId === 3) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.cekilisTarihi })
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'date',
|
||||||
|
between: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 12. ÇEKİLİŞ GÖREVLİSİ
|
||||||
|
header.push({
|
||||||
|
name: 'cekilisGorevlisi',
|
||||||
|
title: 'Çekiliş Görevlisi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.cekilisGorevlisi || ''
|
||||||
|
},
|
||||||
|
filter: {
|
||||||
|
type: 'text'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 13. GAZETE İLAN TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'gazeteIlanTarihi',
|
||||||
|
title: 'Gazete İlan Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.gazeteIlanTarihi || v.gazeteIlanTarihi === null) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.gazeteIlanTarihi })
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'date',
|
||||||
|
between: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 14. GAZETE ADI
|
||||||
|
header.push({
|
||||||
|
name: 'gazeteAdi',
|
||||||
|
title: 'Gazete Adı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.gazeteAdi || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 15. İZİN BEDELİ
|
||||||
|
header.push({
|
||||||
|
name: 'izinBedeliTutari',
|
||||||
|
title: 'İzin Bedeli',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (v.izinBedeliTutari === null || v.izinBedeliTutari === undefined) return ''
|
||||||
|
return globalStore.toTrLocale(v.izinBedeliTutari)
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 16. İKRAMİYE TUTARI
|
||||||
|
header.push({
|
||||||
|
name: 'ikramiyeTutari',
|
||||||
|
title: 'İkramiye Tutarı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (v.ikramiyeTutari === null || v.ikramiyeTutari === undefined) return ''
|
||||||
|
return globalStore.toTrLocale(v.ikramiyeTutari)
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 17. TEMİNAT TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'teminatTarihi',
|
||||||
|
title: 'Teminat Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.teminatTarihi || v.teminatTarihi === null) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.teminatTarihi })
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 18. TEMİNAT SAYISI
|
||||||
|
header.push({
|
||||||
|
name: 'teminatSayisi',
|
||||||
|
title: 'Teminat Sayısı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.teminatSayisi || ''
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 19. TEMİNAT BANKASI
|
||||||
|
header.push({
|
||||||
|
name: 'teminatBankasi',
|
||||||
|
title: 'Teminat Bankası',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.teminatBankasi || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 20. TEMİNAT TUTARI
|
||||||
|
header.push({
|
||||||
|
name: 'teminatTutari',
|
||||||
|
title: 'Teminat Tutarı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (v.teminatTutari === null || v.teminatTutari === undefined) return ''
|
||||||
|
return globalStore.toTrLocale(v.teminatTutari)
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 21. T. PARA CİNSİ
|
||||||
|
header.push({
|
||||||
|
name: 'paraBirimiSembol',
|
||||||
|
title: 'T. Para Cinsi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.paraBirimiSembol || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 22. T. İADE TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'teminatIadeTarihi',
|
||||||
|
title: 'T. İade Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.teminatIadeTarihi || v.teminatIadeTarihi === null) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.teminatIadeTarihi })
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 23. T. İADE SAYISI
|
||||||
|
header.push({
|
||||||
|
name: 'teminatIadeSayisi',
|
||||||
|
title: 'T. İade Sayısı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.teminatIadeSayisi || ''
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 24. İKRAMİYELER
|
||||||
|
header.push({
|
||||||
|
name: 'ikramiyeler',
|
||||||
|
title: 'İkramiyeler',
|
||||||
|
style: { width: '15%' },
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.ikramiyeler || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Panel User için ek sütunlar
|
||||||
if (usersStore.isPanelUser) {
|
if (usersStore.isPanelUser) {
|
||||||
header.push({
|
header.push({
|
||||||
name: 'atanmis',
|
name: 'atanmis',
|
||||||
@ -200,17 +368,15 @@
|
|||||||
computeHtml: (v: Record<string, any>): string => {
|
computeHtml: (v: Record<string, any>): string => {
|
||||||
if (v.atanmis) {
|
if (v.atanmis) {
|
||||||
return `<strong class="back-grad back-grad-sevk-ok">
|
return `<strong class="back-grad back-grad-sevk-ok">
|
||||||
${v.atananlar}
|
${v.atananlar}
|
||||||
</strong>`
|
</strong>`
|
||||||
} else {
|
} else {
|
||||||
return `<span class="back-grad back-grad-sevk">
|
return `<span class="back-grad back-grad-sevk">
|
||||||
Sevk Edilmemiş</span>`
|
Sevk Edilmemiş</span>`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
|
||||||
|
|
||||||
if (usersStore.isPanelUser) {
|
|
||||||
header.push({
|
header.push({
|
||||||
name: 'basvuruBedelNo',
|
name: 'basvuruBedelNo',
|
||||||
title: 'Muhasebeleştirme Durumu',
|
title: 'Muhasebeleştirme Durumu',
|
||||||
@ -218,22 +384,23 @@
|
|||||||
let durum = ''
|
let durum = ''
|
||||||
if (v.basvuruBedelNo !== null) {
|
if (v.basvuruBedelNo !== null) {
|
||||||
durum += `<strong">Başvuru Bedel No: </strong>
|
durum += `<strong">Başvuru Bedel No: </strong>
|
||||||
${v.basvuruBedelNo}<br>`
|
${v.basvuruBedelNo}<br>`
|
||||||
}
|
}
|
||||||
if (v.izinBedelNo !== null) {
|
if (v.izinBedelNo !== null) {
|
||||||
durum += `<strong">İzin Bedel No: </strong>
|
durum += `<strong">İzin Bedel No: </strong>
|
||||||
${v.izinBedelNo}`
|
${v.izinBedelNo}`
|
||||||
}
|
}
|
||||||
return durum
|
return durum
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
return header
|
return header
|
||||||
})
|
})
|
||||||
|
|
||||||
// tablodan herhangi bir satır tıklayınca çalısır
|
// tablodan herhangi bir satır tıklayınca çalısır
|
||||||
const OpenPiyango = (row: any) => {
|
const OpenPiyango = (row: any) => {
|
||||||
router.push('detay/' + row.id+'/piyango-bilgileri')
|
router.push('detay/' + row.id + '/piyango-bilgileri')
|
||||||
}
|
}
|
||||||
|
|
||||||
onBeforeMount(async () => {
|
onBeforeMount(async () => {
|
||||||
@ -243,13 +410,4 @@
|
|||||||
|
|
||||||
loaded.value = true
|
loaded.value = true
|
||||||
})
|
})
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
// URL query parametrelerini kontrol et ve filtreleri uygula
|
|
||||||
if (route.query.durumId) {
|
|
||||||
// Filtre parametresini ListTableContent bileşenine iletmek için
|
|
||||||
// Bu parametre otomatik olarak ListTableContent tarafından işlenecek
|
|
||||||
console.log('Durum filtresi uygulanıyor:', route.query.durumId)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -78,7 +78,7 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -90,7 +90,7 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -102,7 +102,7 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -114,7 +114,7 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -134,7 +134,7 @@
|
|||||||
name: 'durum',
|
name: 'durum',
|
||||||
title: 'Durum',
|
title: 'Durum',
|
||||||
computeHtml: (v: Record<string, any>): string => {
|
computeHtml: (v: Record<string, any>): string => {
|
||||||
return `<span class='back-grad ${piyangoStore.LoterryStatusClass(v.durum)}'>
|
return `<span class='${piyangoStore.LoterryStatusClass(v.durum)}'>
|
||||||
${v.durum}
|
${v.durum}
|
||||||
</span>`
|
</span>`
|
||||||
},
|
},
|
||||||
|
|||||||
@ -217,7 +217,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const GetIkramiyeTotalValues = async () => {
|
const GetIkramiyeTotalValues = async () => {
|
||||||
console.log(piyangoStore, 'piyangoStore')
|
|
||||||
let data = await dataStore.dataGet('Ikramiye/Cekilis/' + piyangoStore.selectedLottery +'?pageNumber=0')
|
let data = await dataStore.dataGet('Ikramiye/Cekilis/' + piyangoStore.selectedLottery +'?pageNumber=0')
|
||||||
//todo:page 0
|
//todo:page 0
|
||||||
if (data !== 'errorfalse') {
|
if (data !== 'errorfalse') {
|
||||||
@ -281,7 +280,6 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const BasvuruBedeliMuhasebelestir = async () => {
|
const BasvuruBedeliMuhasebelestir = async () => {
|
||||||
console.log('basvuru bedeli muhasebelestir')
|
|
||||||
let data = await dataStore.dataGet(
|
let data = await dataStore.dataGet(
|
||||||
'MuhasebeSettings/BasvuruBedeli/' + piyangoStore.selectedLottery
|
'MuhasebeSettings/BasvuruBedeli/' + piyangoStore.selectedLottery
|
||||||
)
|
)
|
||||||
|
|||||||
@ -24,6 +24,8 @@
|
|||||||
const dateStore = useDateStore()
|
const dateStore = useDateStore()
|
||||||
import { useUsersStore } from '@/stores/usersStore'
|
import { useUsersStore } from '@/stores/usersStore'
|
||||||
const usersStore = useUsersStore()
|
const usersStore = useUsersStore()
|
||||||
|
import { useGlobalStore } from '@/stores/globalStore'
|
||||||
|
const globalStore = useGlobalStore()
|
||||||
import { usePiyangoStore } from '@/module/cekilisler/stores/piyangoStore'
|
import { usePiyangoStore } from '@/module/cekilisler/stores/piyangoStore'
|
||||||
const piyangoStore = usePiyangoStore()
|
const piyangoStore = usePiyangoStore()
|
||||||
import { usePiyangoDataStore } from '@/module/cekilisler/stores/piyangoDataStore'
|
import { usePiyangoDataStore } from '@/module/cekilisler/stores/piyangoDataStore'
|
||||||
@ -50,156 +52,310 @@
|
|||||||
const tableHeader = computed<Record<string, any>[]>(() => {
|
const tableHeader = computed<Record<string, any>[]>(() => {
|
||||||
let header: Record<string, any>[] = []
|
let header: Record<string, any>[] = []
|
||||||
|
|
||||||
|
// 1. PİYANGO ID
|
||||||
|
header.push({
|
||||||
|
name: 'piyangoId',
|
||||||
|
title: 'Piyango ID',
|
||||||
|
sort: true,
|
||||||
|
style: { width: '10%' }
|
||||||
|
})
|
||||||
|
|
||||||
|
// 2. MÜDÜRLÜK
|
||||||
|
header.push({
|
||||||
|
name: 'mudurluk',
|
||||||
|
title: 'Müdürlük',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.mudurluk || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 3. PİYANGO AMACI
|
||||||
|
header.push({
|
||||||
|
name: 'piyangoamac',
|
||||||
|
title: 'Piyango Amacı',
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'select',
|
||||||
|
data: piyangoAmaclari.value,
|
||||||
|
listVal: 'id',
|
||||||
|
listText: 'amacAdi',
|
||||||
|
filterId: 'piyangoAmacId'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 4. DÜZENLEYEN (koşullu)
|
||||||
if (usersStore.isAraciFirma || usersStore.isPanelUser) {
|
if (usersStore.isAraciFirma || usersStore.isPanelUser) {
|
||||||
header.push({ name: 'duzenleyen', title: 'Düzenleyen' })
|
header.push({ name: 'duzenleyen', title: 'Düzenleyen' })
|
||||||
}
|
}
|
||||||
|
|
||||||
header.push(
|
// 5. ARACI FİRMA
|
||||||
{
|
header.push({
|
||||||
name: 'piyangoId',
|
name: 'araciFirma',
|
||||||
title: 'Piyango ID',
|
title: 'Araci Firma',
|
||||||
sort: true,
|
compute: (v: Record<string, any>): string => {
|
||||||
style: { width: '10%' }
|
return v.araciFirma || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 6. DURUM
|
||||||
|
header.push({
|
||||||
|
name: 'durum',
|
||||||
|
title: 'Durum',
|
||||||
|
style: { width: '10%' },
|
||||||
|
computeHtml: (v: Record<string, any>): string => {
|
||||||
|
return `<span class="${piyangoStore.LoterryStatusClass(v.durum)}">
|
||||||
|
${v.durum}
|
||||||
|
</span>`
|
||||||
},
|
},
|
||||||
{
|
filter: {
|
||||||
name: 'baslik',
|
type: 'select',
|
||||||
title: 'Başlık',
|
data: piyangoOnayDurumlari.value,
|
||||||
sort: true,
|
listVal: 'id',
|
||||||
style: { width: '15%' }
|
listText: 'tipAdi',
|
||||||
|
filterId: 'durumId'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 7. İZİN TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'izinTarihi',
|
||||||
|
title: 'İzin Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.izinTarihi || v.izinTarihi === null) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.izinTarihi })
|
||||||
},
|
},
|
||||||
{
|
sort: true,
|
||||||
name: 'piyangoamac',
|
filter: {
|
||||||
title: 'Piyango Amacı',
|
type: 'date',
|
||||||
sort: true,
|
between: true
|
||||||
filter: {
|
}
|
||||||
type: 'select',
|
})
|
||||||
data: piyangoAmaclari.value,
|
|
||||||
listVal: 'id',
|
// 8. İZİN SAYISI
|
||||||
listText: 'amacAdi',
|
header.push({
|
||||||
filterId: 'piyangoAmacId'
|
name: 'izinSayisi',
|
||||||
}
|
title: 'İzin Sayısı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.izinSayisi || ''
|
||||||
},
|
},
|
||||||
{
|
sort: true
|
||||||
name: 'olusturmaTarihi',
|
})
|
||||||
title: 'Oluşturulma Tarihi',
|
|
||||||
compute: (v: Record<string, any>): string => {
|
// 9. BAŞLANGIÇ TARİHİ
|
||||||
return dateStore.dateFormat({ date: v.olusturmaTarihi })
|
header.push({
|
||||||
},
|
name: 'baslangicTarihi',
|
||||||
sort: true,
|
title: 'Başlangıç Tarihi',
|
||||||
filter: {
|
compute: (v: Record<string, any>): string => {
|
||||||
type: 'date',
|
if (!v.baslangicTarihi || v.baslangicTarihi.includes('0001-')) return ''
|
||||||
range: true
|
return dateStore.dateFormat({ date: v.baslangicTarihi })
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'date',
|
||||||
|
between: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 10. BİTİŞ TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'bitisTarihi',
|
||||||
|
title: 'Bitiş Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.bitisTarihi || v.bitisTarihi.includes('0001-')) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.bitisTarihi })
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'date',
|
||||||
|
between: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 11. ÇEKİLİŞ TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'cekilisTarihi',
|
||||||
|
title: 'Çekiliş Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.cekilisTarihi || v.cekilisTarihi.includes('0001-')) return ''
|
||||||
|
if (v.piyangoAmacId === 3) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.cekilisTarihi })
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'date',
|
||||||
|
between: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 12. ÇEKİLİŞ GÖREVLİSİ
|
||||||
|
header.push({
|
||||||
|
name: 'cekilisGorevlisi',
|
||||||
|
title: 'Çekiliş Görevlisi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.cekilisGorevlisi || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 13. GAZETE İLAN TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'gazeteIlanTarihi',
|
||||||
|
title: 'Gazete İlan Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.gazeteIlanTarihi || v.gazeteIlanTarihi === null) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.gazeteIlanTarihi })
|
||||||
|
},
|
||||||
|
sort: true,
|
||||||
|
filter: {
|
||||||
|
type: 'date',
|
||||||
|
between: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 14. GAZETE ADI
|
||||||
|
header.push({
|
||||||
|
name: 'gazeteAdi',
|
||||||
|
title: 'Gazete Adı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.gazeteAdi || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 15. İZİN BEDELİ
|
||||||
|
header.push({
|
||||||
|
name: 'izinBedeliTutari',
|
||||||
|
title: 'İzin Bedeli',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (v.izinBedeliTutari === null || v.izinBedeliTutari === undefined) return ''
|
||||||
|
return globalStore.toTrLocale(v.izinBedeliTutari)
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 16. İKRAMİYE TUTARI
|
||||||
|
header.push({
|
||||||
|
name: 'ikramiyeTutari',
|
||||||
|
title: 'İkramiye Tutarı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (v.ikramiyeTutari === null || v.ikramiyeTutari === undefined) return ''
|
||||||
|
return globalStore.toTrLocale(v.ikramiyeTutari)
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 17. TEMİNAT TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'teminatTarihi',
|
||||||
|
title: 'Teminat Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.teminatTarihi || v.teminatTarihi === null) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.teminatTarihi })
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 18. TEMİNAT SAYISI
|
||||||
|
header.push({
|
||||||
|
name: 'teminatSayisi',
|
||||||
|
title: 'Teminat Sayısı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.teminatSayisi || ''
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 19. TEMİNAT BANKASI
|
||||||
|
header.push({
|
||||||
|
name: 'teminatBankasi',
|
||||||
|
title: 'Teminat Bankası',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.teminatBankasi || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 20. TEMİNAT TUTARI
|
||||||
|
header.push({
|
||||||
|
name: 'teminatTutari',
|
||||||
|
title: 'Teminat Tutarı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (v.teminatTutari === null || v.teminatTutari === undefined) return ''
|
||||||
|
return globalStore.toTrLocale(v.teminatTutari)
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 21. T. PARA CİNSİ
|
||||||
|
header.push({
|
||||||
|
name: 'paraBirimiSembol',
|
||||||
|
title: 'T. Para Cinsi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.paraBirimiSembol || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// 22. T. İADE TARİHİ
|
||||||
|
header.push({
|
||||||
|
name: 'teminatIadeTarihi',
|
||||||
|
title: 'T. İade Tarihi',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
if (!v.teminatIadeTarihi || v.teminatIadeTarihi === null) return ''
|
||||||
|
return dateStore.dateFormat({ date: v.teminatIadeTarihi })
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 23. T. İADE SAYISI
|
||||||
|
header.push({
|
||||||
|
name: 'teminatIadeSayisi',
|
||||||
|
title: 'T. İade Sayısı',
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.teminatIadeSayisi || ''
|
||||||
|
},
|
||||||
|
sort: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 24. İKRAMİYELER
|
||||||
|
header.push({
|
||||||
|
name: 'ikramiyeler',
|
||||||
|
title: 'İkramiyeler',
|
||||||
|
style: { width: '15%' },
|
||||||
|
compute: (v: Record<string, any>): string => {
|
||||||
|
return v.ikramiyeler || ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Muhasebe özel sütunlar
|
||||||
|
header.push({
|
||||||
|
name: 'atanmis',
|
||||||
|
title: 'Sevk Durumu',
|
||||||
|
computeHtml: (v: Record<string, any>): string => {
|
||||||
|
if (v.atanmis) {
|
||||||
|
return `<strong class="back-grad back-grad-sevk-ok">
|
||||||
|
${v.atananlar}
|
||||||
|
</strong>`
|
||||||
|
} else {
|
||||||
|
return `<span class="back-grad back-grad-sevk">
|
||||||
|
Sevk Edilmemiş</span>`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
})
|
||||||
|
|
||||||
if (usersStore.isVakifDernek || usersStore.isPanelUser) {
|
header.push({
|
||||||
header.push({
|
name: 'basvuruBedelNo',
|
||||||
name: 'cekilisTarihi',
|
title: 'Muhasebeleştirme Durumu',
|
||||||
title: 'Çekiliş Tarihi',
|
computeHtml: (v: Record<string, any>): string => {
|
||||||
compute: (v: Record<string, any>): string => {
|
let durum = ''
|
||||||
return dateStore.dateFormat({ date: v.cekilisTarihi })
|
if (v.basvuruBedelNo !== null) {
|
||||||
},
|
durum += `<strong">Başvuru Bedel No: </strong>
|
||||||
sort: true,
|
${v.basvuruBedelNo}<br>`
|
||||||
filter: {
|
|
||||||
type: 'date',
|
|
||||||
range: true
|
|
||||||
}
|
}
|
||||||
})
|
if (v.izinBedelNo !== null) {
|
||||||
}
|
durum += `<strong">İzin Bedel No: </strong>
|
||||||
if (!usersStore.isVakifDernek || usersStore.isPanelUser) {
|
${v.izinBedelNo}`
|
||||||
header.push(
|
|
||||||
{
|
|
||||||
name: 'baslangicTarihi',
|
|
||||||
title: 'Başlangıç Tarihi',
|
|
||||||
compute: (v: Record<string, any>): string => {
|
|
||||||
if (v.baslangicTarihi.includes('0001-')) return ''
|
|
||||||
else return dateStore.dateFormat({ date: v.baslangicTarihi })
|
|
||||||
},
|
|
||||||
sort: true,
|
|
||||||
filter: {
|
|
||||||
type: 'date',
|
|
||||||
range: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'bitisTarihi',
|
|
||||||
title: 'Bitis Tarihi',
|
|
||||||
compute: (v: Record<string, any>): string => {
|
|
||||||
if (v.bitisTarihi.includes('0001-')) return ''
|
|
||||||
else return dateStore.dateFormat({ date: v.bitisTarihi })
|
|
||||||
},
|
|
||||||
sort: true,
|
|
||||||
filter: {
|
|
||||||
type: 'date',
|
|
||||||
range: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
header.push(
|
|
||||||
{
|
|
||||||
name: 'cekilisYontemi',
|
|
||||||
title: 'Çekiliş Yöntemi',
|
|
||||||
sort: true,
|
|
||||||
filter: {
|
|
||||||
type: 'select',
|
|
||||||
data: cekilisYontemleri.value,
|
|
||||||
listVal: 'id',
|
|
||||||
listText: 'deger',
|
|
||||||
filterId: 'cekilisYontemiId'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ name: 'ikramiyeler', title: 'İkramiyeler', style: { width: '15%' } },
|
|
||||||
{
|
|
||||||
name: 'durum',
|
|
||||||
title: 'Durum',
|
|
||||||
style: { width: '10%' },
|
|
||||||
computeHtml: (v: Record<string, any>): string => {
|
|
||||||
return `<span class="back-grad ${piyangoStore.LoterryStatusClass(v.durum)}">
|
|
||||||
${v.durum}
|
|
||||||
</span>`
|
|
||||||
},
|
|
||||||
filter: {
|
|
||||||
type: 'select',
|
|
||||||
data: piyangoOnayDurumlari.value,
|
|
||||||
listVal: 'id',
|
|
||||||
listText: 'tipAdi',
|
|
||||||
filterId: 'durumId'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'atanmis',
|
|
||||||
title: 'Sevk Durumu',
|
|
||||||
computeHtml: (v: Record<string, any>): string => {
|
|
||||||
if (v.atanmis) {
|
|
||||||
return `<strong class="back-grad back-grad-sevk-ok">
|
|
||||||
${v.atananlar}
|
|
||||||
</strong>`
|
|
||||||
} else {
|
|
||||||
return `<span class="back-grad back-grad-sevk">
|
|
||||||
Sevk Edilmemiş</span>`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'basvuruBedelNo',
|
|
||||||
title: 'Muhasebeleştirme Durumu',
|
|
||||||
computeHtml: (v: Record<string, any>): string => {
|
|
||||||
let durum = ''
|
|
||||||
if (v.basvuruBedelNo !== null) {
|
|
||||||
durum += `<strong">Başvuru Bedel No: </strong>
|
|
||||||
${v.basvuruBedelNo}<br>`
|
|
||||||
}
|
|
||||||
if (v.izinBedelNo !== null) {
|
|
||||||
durum += `<strong">İzin Bedel No: </strong>
|
|
||||||
${v.izinBedelNo}`
|
|
||||||
}
|
|
||||||
return durum
|
|
||||||
}
|
}
|
||||||
|
return durum
|
||||||
}
|
}
|
||||||
)
|
})
|
||||||
|
|
||||||
return header
|
return header
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -153,10 +153,7 @@
|
|||||||
}
|
}
|
||||||
const loadSliders = async () => {
|
const loadSliders = async () => {
|
||||||
const data = await dataStore.dataGet('Slider')
|
const data = await dataStore.dataGet('Slider')
|
||||||
console.log('apidata', data)
|
|
||||||
sliders.value = data
|
sliders.value = data
|
||||||
|
|
||||||
console.log(sliders.value)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const save = async () => {
|
const save = async () => {
|
||||||
|
|||||||
@ -86,7 +86,7 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -98,7 +98,7 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -110,7 +110,7 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -122,7 +122,7 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -143,7 +143,7 @@
|
|||||||
title: 'Durum',
|
title: 'Durum',
|
||||||
style: { width: '10%' },
|
style: { width: '10%' },
|
||||||
computeHtml: (v: Record<string, any>): string => {
|
computeHtml: (v: Record<string, any>): string => {
|
||||||
return `<span class='back-grad ${piyangoStore.LoterryStatusClass(v.durum)}'>
|
return `<span class='${piyangoStore.LoterryStatusClass(v.durum)}'>
|
||||||
${v.durum}
|
${v.durum}
|
||||||
</span>`
|
</span>`
|
||||||
},
|
},
|
||||||
|
|||||||
@ -66,7 +66,7 @@
|
|||||||
},
|
},
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
},
|
},
|
||||||
style: { width: '10%' }
|
style: { width: '10%' }
|
||||||
},
|
},
|
||||||
|
|||||||
@ -51,7 +51,7 @@
|
|||||||
sort: true,
|
sort: true,
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
},
|
},
|
||||||
style:{width:'15%'}
|
style:{width:'15%'}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -7,6 +7,9 @@
|
|||||||
<template #kisi-kurum-bilgileri>
|
<template #kisi-kurum-bilgileri>
|
||||||
<tab-yetkili-uye-bilgileri />
|
<tab-yetkili-uye-bilgileri />
|
||||||
</template>
|
</template>
|
||||||
|
<template #piyangolar>
|
||||||
|
<tab-uye-piyangolar />
|
||||||
|
</template>
|
||||||
<template #onay-durumu>
|
<template #onay-durumu>
|
||||||
<tab-uye-onay-durumu v-if="usersStore.isPanelUser" />
|
<tab-uye-onay-durumu v-if="usersStore.isPanelUser" />
|
||||||
<tab-uye-onay-durumu-user v-else />
|
<tab-uye-onay-durumu-user v-else />
|
||||||
@ -25,6 +28,7 @@
|
|||||||
|
|
||||||
import AdminLayout from '@/layouts/AdminLayout.vue'
|
import AdminLayout from '@/layouts/AdminLayout.vue'
|
||||||
import TabYetkiliUyeBilgileri from '../components/TabYetkiliUyeBilgileri.vue'
|
import TabYetkiliUyeBilgileri from '../components/TabYetkiliUyeBilgileri.vue'
|
||||||
|
import TabUyePiyangolar from '../components/TabUyePiyangolar.vue'
|
||||||
import TabUyeOnayDurumu from '../components/TabUyeOnayDurumu.vue'
|
import TabUyeOnayDurumu from '../components/TabUyeOnayDurumu.vue'
|
||||||
import TabUyeOnayDurumuUser from '../components/TabUyeOnayDurumuUser.vue'
|
import TabUyeOnayDurumuUser from '../components/TabUyeOnayDurumuUser.vue'
|
||||||
|
|
||||||
@ -32,6 +36,11 @@
|
|||||||
const tabList = ref<Record<string, any>[]>([
|
const tabList = ref<Record<string, any>[]>([
|
||||||
{ text: 'Kişi/Kurum Bilgileri', id: 'kisi-kurum-bilgileri' }
|
{ 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' })
|
tabList.value.push({ text: 'Onay Durumu', id: 'onay-durumu' })
|
||||||
|
|
||||||
onBeforeMount(async () => {
|
onBeforeMount(async () => {
|
||||||
|
|||||||
@ -63,7 +63,7 @@
|
|||||||
},
|
},
|
||||||
filter: {
|
filter: {
|
||||||
type: 'date',
|
type: 'date',
|
||||||
range: true
|
between: true
|
||||||
},
|
},
|
||||||
style: { width: '10%' }
|
style: { width: '10%' }
|
||||||
},
|
},
|
||||||
|
|||||||
@ -35,13 +35,14 @@ export const useDataStore = defineStore('dataStore', () => {
|
|||||||
if (data.data !== undefined) sendData.data = data.data
|
if (data.data !== undefined) sendData.data = data.data
|
||||||
if (data.params !== undefined) sendData.params = data.params
|
if (data.params !== undefined) sendData.params = data.params
|
||||||
if (data.headers !== undefined) sendData.headers = data.headers
|
if (data.headers !== undefined) sendData.headers = data.headers
|
||||||
if (data.toast !== undefined) {
|
|
||||||
toastStore.AddToast(data.toast.toast, data.toast.type, data.toast.timeout)
|
|
||||||
}
|
|
||||||
|
|
||||||
const response = await axios.get(apiBase.value + api, sendData)
|
const response = await axios.get(apiBase.value + api, sendData)
|
||||||
console.log('response --', api, response)
|
console.log('response --', api, response)
|
||||||
|
|
||||||
|
if (data.toast !== undefined) {
|
||||||
|
toastStore.AddToast(data.toast.toast, data.toast.type, data.toast.timeout)
|
||||||
|
}
|
||||||
|
|
||||||
if (data.full !== undefined && data.full) {
|
if (data.full !== undefined && data.full) {
|
||||||
return response
|
return response
|
||||||
} else {
|
} else {
|
||||||
@ -72,12 +73,13 @@ export const useDataStore = defineStore('dataStore', () => {
|
|||||||
if (data.options !== undefined) Object.assign(sendData, data.options)
|
if (data.options !== undefined) Object.assign(sendData, data.options)
|
||||||
if (data.params !== undefined) sendData.params = data.params
|
if (data.params !== undefined) sendData.params = data.params
|
||||||
if (data.headers !== undefined) sendData.headers = data.headers
|
if (data.headers !== undefined) sendData.headers = data.headers
|
||||||
|
|
||||||
|
const response = await axios.post(apiBase.value + api, postData, sendData)
|
||||||
|
|
||||||
if (data.toast !== undefined) {
|
if (data.toast !== undefined) {
|
||||||
toastStore.AddToast(data.toast.toast, data.toast.type, data.toast.timeout)
|
toastStore.AddToast(data.toast.toast, data.toast.type, data.toast.timeout)
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await axios.post(apiBase.value + api, postData, sendData)
|
|
||||||
|
|
||||||
if (data.full !== undefined && data.full) {
|
if (data.full !== undefined && data.full) {
|
||||||
return response
|
return response
|
||||||
} else {
|
} else {
|
||||||
@ -109,11 +111,13 @@ export const useDataStore = defineStore('dataStore', () => {
|
|||||||
if (data.options !== undefined) Object.assign(sendData, data.options)
|
if (data.options !== undefined) Object.assign(sendData, data.options)
|
||||||
if (data.params !== undefined) sendData.params = data.params
|
if (data.params !== undefined) sendData.params = data.params
|
||||||
if (data.headers !== undefined) sendData.headers = data.headers
|
if (data.headers !== undefined) sendData.headers = data.headers
|
||||||
|
|
||||||
|
const response = await axios.put(apiBase.value + api, postData, sendData)
|
||||||
|
|
||||||
if (data.toast !== undefined) {
|
if (data.toast !== undefined) {
|
||||||
toastStore.AddToast(data.toast.toast, data.toast.type, data.toast.timeout)
|
toastStore.AddToast(data.toast.toast, data.toast.type, data.toast.timeout)
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await axios.put(apiBase.value + api, postData, sendData)
|
|
||||||
if (data.full !== undefined && data.full) {
|
if (data.full !== undefined && data.full) {
|
||||||
return response
|
return response
|
||||||
} else {
|
} else {
|
||||||
@ -144,11 +148,13 @@ export const useDataStore = defineStore('dataStore', () => {
|
|||||||
if (data.options !== undefined) Object.assign(sendData, data.options)
|
if (data.options !== undefined) Object.assign(sendData, data.options)
|
||||||
if (data.params !== undefined) sendData.params = data.params
|
if (data.params !== undefined) sendData.params = data.params
|
||||||
if (data.headers !== undefined) sendData.headers = data.headers
|
if (data.headers !== undefined) sendData.headers = data.headers
|
||||||
|
|
||||||
|
const response = await axios.delete(apiBase.value + api, sendData)
|
||||||
|
|
||||||
if (data.toast !== undefined) {
|
if (data.toast !== undefined) {
|
||||||
toastStore.AddToast(data.toast.toast, data.toast.type, data.toast.timeout)
|
toastStore.AddToast(data.toast.toast, data.toast.type, data.toast.timeout)
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await axios.delete(apiBase.value + api, sendData)
|
|
||||||
if (data.full !== undefined && data.full) {
|
if (data.full !== undefined && data.full) {
|
||||||
return response
|
return response
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
||||||
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
|
"include": ["env.d.ts", "src/**/*", "src/**/*.vue", "Configs.ts"],
|
||||||
"exclude": ["src/**/__tests__/*"],
|
"exclude": ["src/**/__tests__/*"],
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"composite": true,
|
"composite": true,
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
{
|
{
|
||||||
"extends": "@tsconfig/node20/tsconfig.json",
|
"extends": "./tsconfig.json",
|
||||||
"include": [
|
"include": [
|
||||||
"vite.config.*",
|
"vite.config.*",
|
||||||
"vitest.config.*",
|
"vitest.config.*",
|
||||||
"cypress.config.*",
|
"cypress.config.*",
|
||||||
"nightwatch.conf.*",
|
"nightwatch.conf.*",
|
||||||
"playwright.config.*"
|
"playwright.config.*",
|
||||||
|
"Configs.ts"
|
||||||
],
|
],
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"composite": true,
|
"composite": true,
|
||||||
|
|||||||
@ -3,6 +3,7 @@ import { fileURLToPath, URL } from 'node:url'
|
|||||||
import { defineConfig } from 'vite'
|
import { defineConfig } from 'vite'
|
||||||
import vue from '@vitejs/plugin-vue'
|
import vue from '@vitejs/plugin-vue'
|
||||||
import vueJsx from '@vitejs/plugin-vue-jsx'
|
import vueJsx from '@vitejs/plugin-vue-jsx'
|
||||||
|
import { SetTemplateGroup } from './Configs.js'
|
||||||
|
|
||||||
// https://vitejs.dev/config/
|
// https://vitejs.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
@ -23,5 +24,46 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
esbuild: {
|
esbuild: {
|
||||||
drop: process.env.NODE_ENV === 'production' ? ['console', 'debugger'] : []
|
drop: process.env.NODE_ENV === 'production' ? ['console', 'debugger'] : []
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
rollupOptions: {
|
||||||
|
output: {
|
||||||
|
manualChunks(id) {
|
||||||
|
if (id.includes('/src/')) {
|
||||||
|
const group = SetTemplateGroup(id)
|
||||||
|
if (group) return `grp_${group}` // group files
|
||||||
|
}
|
||||||
|
|
||||||
|
// jquery files
|
||||||
|
if (id.includes('node_modules/jquery')) return 'ven_jquery'
|
||||||
|
if (id.includes('node_modules/summernote')) return 'ven_summer'
|
||||||
|
if (id.includes('node_modules/pdfmake')) return 'ven_pdfmake'
|
||||||
|
if (id.includes('node_modules/html-to-pdfmake')) return 'ven_pdfmake'
|
||||||
|
if (id.includes('node_modules/vue3-pdfmake')) return 'ven_pdfmake'
|
||||||
|
|
||||||
|
// other node_modules files
|
||||||
|
if (id.includes('node_modules')) return 'vendor'
|
||||||
|
},
|
||||||
|
assetFileNames: (assetInfo) => {
|
||||||
|
const name = assetInfo.names?.[0] || assetInfo.name || ''
|
||||||
|
|
||||||
|
if (name.endsWith('.css')) {
|
||||||
|
return 'static/css/[name]-[hash][extname]'
|
||||||
|
}
|
||||||
|
if (/\.(png|jpe?g|svg|gif|webp|ico)$/i.test(name)) {
|
||||||
|
return 'static/images/[name]-[hash][extname]'
|
||||||
|
}
|
||||||
|
if (/\.(ttf|woff2?|eot|otf)$/i.test(name)) {
|
||||||
|
return 'static/fonts/[name]-[hash][extname]'
|
||||||
|
}
|
||||||
|
return 'static/[name]-[hash][extname]'
|
||||||
|
},
|
||||||
|
chunkFileNames: (chunkInfo) => {
|
||||||
|
if (chunkInfo.name?.startsWith('grp_')) return 'static/js/[name]-[hash].js'
|
||||||
|
return 'static/js/[name]-[hash].js'
|
||||||
|
},
|
||||||
|
entryFileNames: 'static/js/[name]-[hash].js'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user