9 Commits

Author SHA1 Message Date
ed8b6fd3eb - Kapsam dışı piyango detayında bazı tablar kaldırıldı
- piyango liste kapsam dışı ise çekiliş tarihi olmayacak
2025-07-28 19:07:55 +03:00
f4c0511afb - dev ve prod için env ayarları yapıldı.
- test sunucusu iin build script eklendi
2025-07-28 17:14:07 +03:00
7998b7bd6c Merge pull request 'Piyango Teminat iade seçeneği için alanlar eklendi.' (#2) from Teminat-İade-Seçeneği-Geliştirmesi into main
Reviewed-on: #2
2025-07-28 13:51:32 +00:00
6ff319cb1d Merge pull request '- FormDisplay size props eklendi' (#1) from piyango-Id-geliştirmesi into main
Reviewed-on: #1
2025-07-28 13:50:43 +00:00
10011eacd6 site yönetimi sadece süperadmin 2025-07-28 10:15:48 +03:00
36d646e0bf piyangoid 2025-07-25 17:51:18 +03:00
908e63b896 popup liste slider liste 2025-07-25 17:10:36 +03:00
0e130eafff piyango liste piyango id 2025-07-25 16:29:29 +03:00
f6850853b2 - FormDisplay size props eklendi
- PiyangoId alanları eklendi
2025-07-25 06:24:35 +03:00
19 changed files with 119 additions and 27 deletions

1
.env.development Normal file
View File

@ -0,0 +1 @@
VITE_API_URL=https://panelapi.cekilisevitest.gov.tr/

1
.env.localdev Normal file
View File

@ -0,0 +1 @@
VITE_API_URL=https://localhost:7241/

1
.env.production Normal file
View File

@ -0,0 +1 @@
VITE_API_URL=https://panelapi.cekilisevi.gov.tr/

7
env.d.ts vendored
View File

@ -1,2 +1,9 @@
/// <reference types="vite/client" /> /// <reference types="vite/client" />
interface ImportMetaEnv {
readonly VITE_API_URL: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}

View File

@ -5,9 +5,12 @@
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"localdev": "vite",
"build": "run-p type-check \"build-only {@}\" --", "build": "run-p type-check \"build-only {@}\" --",
"buildtest": "run-p type-check \"build-only-test {@}\" --",
"preview": "vite preview", "preview": "vite preview",
"build-only": "vite build", "build-only": "vite build",
"build-only-test": "vite build --mode development",
"type-check": "vue-tsc --build --force" "type-check": "vue-tsc --build --force"
}, },
"dependencies": { "dependencies": {

View File

@ -14,7 +14,9 @@
</span> </span>
<template v-if="modelText !== undefined && modelText !== ''"> <template v-if="modelText !== undefined && modelText !== ''">
<template v-if="typeof modelText === 'string'"> <template v-if="typeof modelText === 'string'">
<span>{{ price ? globalStore.toTrLocale(modelText) : modelText }}</span> <span :class="[size ? 'form-item-size form-item-size-' + size : '']">
{{ price ? globalStore.toTrLocale(modelText) : modelText }}
</span>
</template> </template>
<template v-if="typeof modelText === 'object'"> <template v-if="typeof modelText === 'object'">
<ul> <ul>
@ -25,7 +27,9 @@
</template> </template>
</template> </template>
<template v-else> <template v-else>
<span>{{ price ? globalStore.toTrLocale(localValue) : localValue }}</span> <span :class="[size ? 'form-item-size form-item-size-' + size : '']">
{{ price ? globalStore.toTrLocale(localValue) : localValue }}
</span>
</template> </template>
<span <span
class="form-item-alert" class="form-item-alert"
@ -64,6 +68,7 @@
modelText?: any modelText?: any
invalidText?: string invalidText?: string
price?: boolean price?: boolean
size?: number | string
} }
const props = withDefaults(defineProps<Props>(), { const props = withDefaults(defineProps<Props>(), {
half: false, half: false,
@ -71,13 +76,23 @@
}) })
const localValue = ref<any>(props.modelValue) const localValue = ref<any>(props.modelValue)
if (props.type === 'date' && props.modelValue !== null && props.modelValue !== undefined && props.modelValue !== '') if (
props.type === 'date' &&
props.modelValue !== null &&
props.modelValue !== undefined &&
props.modelValue !== ''
)
localValue.value = dateStore.dateFormat({ localValue.value = dateStore.dateFormat({
date: props.modelValue as Date, date: props.modelValue as Date,
pattern: 'dd-mm-yy' pattern: 'dd-mm-yy'
}) })
if (props.type === 'datetime' && props.modelValue !== null && props.modelValue !== undefined && props.modelValue !== '') if (
props.type === 'datetime' &&
props.modelValue !== null &&
props.modelValue !== undefined &&
props.modelValue !== ''
)
localValue.value = dateStore.dateFormat({ localValue.value = dateStore.dateFormat({
date: props.modelValue as Date, date: props.modelValue as Date,
pattern: 'dd-mm-yy-t' pattern: 'dd-mm-yy-t'
@ -108,3 +123,14 @@
} }
) )
</script> </script>
<style scoped>
.form-item-size {
font-weight: 600;
}
.form-item-size-1 {
font-size: 1.2em;
}
.form-item-size-2 {
font-size: 1.5em;
}
</style>

View File

@ -2,7 +2,7 @@ import axios from 'axios'
import { useUsersStore } from '@/stores/usersStore' import { useUsersStore } from '@/stores/usersStore'
import router from '@/router' import router from '@/router'
axios.defaults.baseURL = 'https://panelapi.cekilisevi.gov.tr/' 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'
import { useDataStore } from '@/stores/dataStore' import { useDataStore } from '@/stores/dataStore'

View File

@ -109,7 +109,7 @@
{ {
title: 'Site Yönetimi', title: 'Site Yönetimi',
ico: 'sitemanagement', ico: 'sitemanagement',
show: usersStore.isPanelUser && !usersStore.isAccounting, show: usersStore.isSuperAdmin,
sub: [ sub: [
{ {
title: 'Yeni Sayfa', title: 'Yeni Sayfa',

View File

@ -3,6 +3,10 @@
<lottery-states <lottery-states
:piyangoAmac="piyangoStore.lotteryData.amacpiyangoId" :piyangoAmac="piyangoStore.lotteryData.amacpiyangoId"
v-if="!isPreview" /> v-if="!isPreview" />
<form-display
v-model="piyangoStore.lotteryData.piyangoId"
label="Piyango ID"
size="1" />
<template <template
v-if=" v-if="
usersStore.isPanelUser && usersStore.isPanelUser &&

View File

@ -23,6 +23,13 @@
<strong style="font-size: 10pt; margin-bottom: 12px"> <strong style="font-size: 10pt; margin-bottom: 12px">
PİYANGO İLE İLGİLİ BİLGİLER PİYANGO İLE İLGİLİ BİLGİLER
</strong> </strong>
<br />
<br />
<strong style="font-size: 10pt; margin-bottom: 12px">
PİYANGO ID: {{ piyangoStore.lotteryData.piyangoId }}
</strong>
<br />
<br />
<table <table
cellspacing="0" cellspacing="0"
class="table-no-line" class="table-no-line"

View File

@ -12,6 +12,12 @@
Bahisler ve Oyunlar Dairesi Başkanlığına Bahisler ve Oyunlar Dairesi Başkanlığına
</strong> </strong>
<br /> <br />
<br />
<strong style="font-size: 10pt; margin-bottom: 12px">
PİYANGO ID: {{ piyangoStore.lotteryData.piyangoId }}
</strong>
<br />
<br />
<table <table
cellspacing="0" cellspacing="0"
class="table-no-line" class="table-no-line"

View File

@ -31,7 +31,17 @@
</div> </div>
<div class="form-part-content" v-if="loaded"> <div class="form-part-content" v-if="loaded">
<lottery-states :piyangoAmac="piyangoStore.lotteryData.amacpiyangoId" /> <lottery-states :piyangoAmac="piyangoStore.lotteryData.amacpiyangoId" />
<template
v-if="
!piyangoStore.isNew &&
piyangoStore.lotteryData.piyangoId !== undefined &&
piyangoStore.lotteryData.piyangoId !== null
">
<form-display
v-model="piyangoStore.lotteryData.piyangoId"
label="Piyango ID"
size="1" />
</template>
<form-input <form-input
modelKey="cekilisBaslik" modelKey="cekilisBaslik"
v-model="piyangoStore.lotteryData.baslik" v-model="piyangoStore.lotteryData.baslik"

View File

@ -60,13 +60,14 @@
const CreateTabs = () => { const CreateTabs = () => {
if ( if (
piyangoStore.lotteryApprove === 4 || (piyangoStore.lotteryApprove === 4 ||
piyangoStore.lotteryApprove === 10 || piyangoStore.lotteryApprove === 10 ||
piyangoStore.lotteryApprove === 11 || piyangoStore.lotteryApprove === 11 ||
piyangoStore.lotteryApprove === 12 || piyangoStore.lotteryApprove === 12 ||
piyangoStore.lotteryApprove === 13 || piyangoStore.lotteryApprove === 13 ||
piyangoStore.lotteryApprove === 14 || piyangoStore.lotteryApprove === 14 ||
usersStore.isPanelUser usersStore.isPanelUser) &&
piyangoStore.lotteryPurposeId !== 3
) { ) {
tabList.value.push( tabList.value.push(
{ text: 'Katılım Listesi', id: 'katilimcilistesi' }, { text: 'Katılım Listesi', id: 'katilimcilistesi' },
@ -82,7 +83,7 @@
} }
tabList.value.push({ text: 'Onay Durumu', id: 'onaydurumu' }) tabList.value.push({ text: 'Onay Durumu', id: 'onaydurumu' })
if (piyangoStore.lotteryApprove !== 0) { if (piyangoStore.lotteryApprove !== 0 && piyangoStore.lotteryPurposeId !== 3) {
tabList.value.push({ text: 'Teminat Listesi', id: 'teminatlistesi' }) tabList.value.push({ text: 'Teminat Listesi', id: 'teminatlistesi' })
} }
} }

View File

@ -67,11 +67,25 @@
const tableHeader = computed<Record<string, any>[]>(() => { const tableHeader = computed<Record<string, any>[]>(() => {
let header: Record<string, any>[] = [] let header: Record<string, any>[] = []
header.push({
name: 'piyangoId',
title: 'Piyango Id',
sort: true,
style: { width: '10%' }
})
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( header.push(
{
name: 'piyangoId',
title: 'Piyango ID',
sort: true,
style: { width: '10%' }
},
{ {
name: 'baslik', name: 'baslik',
title: 'Başlık', title: 'Başlık',
@ -101,14 +115,16 @@
type: 'date', type: 'date',
range: true range: true
} }
}) }
)
if (usersStore.isVakifDernek || usersStore.isPanelUser) { if (usersStore.isVakifDernek || usersStore.isPanelUser) {
header.push({ header.push({
name: 'cekilisTarihi', name: 'cekilisTarihi',
title: 'Çekiliş Tarihi', title: 'Çekiliş Tarihi',
compute: (v: Record<string, any>): string => { compute: (v: Record<string, any>): string => {
return dateStore.dateFormat({ date: v.cekilisTarihi }) if(v.piyangoAmacId === 3) return ''
else return dateStore.dateFormat({ date: v.cekilisTarihi })
}, },
sort: true, sort: true,
filter: { filter: {

View File

@ -54,6 +54,12 @@
} }
header.push( header.push(
{
name: 'piyangoId',
title: 'Piyango ID',
sort: true,
style: { width: '10%' }
},
{ {
name: 'baslik', name: 'baslik',
title: 'Başlık', title: 'Başlık',

View File

@ -87,7 +87,7 @@
title: 'Resim Url', title: 'Resim Url',
computeHtml: (v: Record<string, any>) => { computeHtml: (v: Record<string, any>) => {
if (v.resimUrl !== null && v.resimUrl !== undefined) { if (v.resimUrl !== null && v.resimUrl !== undefined) {
return globalStore.TableCellDocument(v.resimUrl) return `<a href="${ v.resimUrl }" target="_blank" onclick="event.stopPropagation()"><img class="table-cell-image" src="${ v.resimUrl }" /></a>`
} }
} }
}, },

View File

@ -78,7 +78,7 @@
title: 'Resim Url', title: 'Resim Url',
computeHtml: (v: Record<string, any>) => { computeHtml: (v: Record<string, any>) => {
if (v.resimUrl !== null && v.resimUrl !== undefined) { if (v.resimUrl !== null && v.resimUrl !== undefined) {
return globalStore.TableCellDocument(v.resimUrl) return `<a href="${ v.resimUrl }" target="_blank" onclick="event.stopPropagation()"><img class="table-cell-image" src="${ v.resimUrl }" /></a>`
} }
} }
}, },

View File

@ -8,7 +8,7 @@ export const useDataStore = defineStore('dataStore', () => {
const globalDataStore = useGlobalDataStore() const globalDataStore = useGlobalDataStore()
const toastStore = useToastStore() const toastStore = useToastStore()
const siteBase = ref<string>('https://panelapi.cekilisevi.gov.tr/') const siteBase = ref<string>(import.meta.env.VITE_API_URL)
const apiBase = ref<string>('api/') const apiBase = ref<string>('api/')
const panelData = reactive<Record<string, any>>({}) const panelData = reactive<Record<string, any>>({})
const pageData = reactive<Record<string, any>>({}) const pageData = reactive<Record<string, any>>({})
@ -40,7 +40,7 @@ export const useDataStore = defineStore('dataStore', () => {
} }
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.full !== undefined && data.full) { if (data.full !== undefined && data.full) {
return response return response
@ -49,7 +49,7 @@ export const useDataStore = defineStore('dataStore', () => {
} }
} catch (error: any) { } catch (error: any) {
CheckApiError(error.response.status, error.response.data) CheckApiError(error.response.status, error.response.data)
//console.error('Hata oluştu -:', error) console.error('Hata oluştu -:', error)
return 'errorfalse' return 'errorfalse'
} }
} }
@ -86,7 +86,7 @@ export const useDataStore = defineStore('dataStore', () => {
} catch (error: any) { } catch (error: any) {
CheckApiError(error.response.status, error.response.data) CheckApiError(error.response.status, error.response.data)
//console.error('Hata oluştu:', error) console.error('Hata oluştu:', error)
return Promise.resolve('errorfalse') return Promise.resolve('errorfalse')
} }
} }
@ -122,7 +122,7 @@ export const useDataStore = defineStore('dataStore', () => {
} catch (error: any) { } catch (error: any) {
CheckApiError(error.response.status, error.response.data) CheckApiError(error.response.status, error.response.data)
//console.error('Hata oluştu:', error) console.error('Hata oluştu:', error)
return Promise.resolve('errorfalse') return Promise.resolve('errorfalse')
} }
} }
@ -156,7 +156,7 @@ export const useDataStore = defineStore('dataStore', () => {
} }
} catch (error: any) { } catch (error: any) {
CheckApiError(error.response.status, error.response.data) CheckApiError(error.response.status, error.response.data)
//console.error('Hata oluştu:', error) console.error('Hata oluştu:', error)
return Promise.resolve('errorfalse') return Promise.resolve('errorfalse')
} }
} }

View File

@ -11,5 +11,8 @@ export default defineConfig({
alias: { alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)) '@': fileURLToPath(new URL('./src', import.meta.url))
} }
},
esbuild: {
drop: process.env.NODE_ENV === 'production' ? ['console', 'debugger'] : []
} }
}) })