- breadcrum geri butonu için manuel atamalar eklendi

- Tablar için route linklemesi eklendi
- piyango detay tabları için routelar düzenlendi
This commit is contained in:
M. Bestami
2025-10-02 12:43:05 +03:00
parent 07c73d39db
commit 5e83a11ecc
25 changed files with 96 additions and 53 deletions

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="breadcrumb-wrapper"> <div class="breadcrumb-wrapper">
<icon-button <icon-button
@click="$router.go(-1)" @click="props.go ? $router.push(go!) : $router.go(-1)"
icon="arrow" icon="arrow"
classList="breadcrumbs-back breadcrumb-link" /> classList="breadcrumbs-back breadcrumb-link" />
<div class="breadcrumbs-list"> <div class="breadcrumbs-list">
@ -13,5 +13,6 @@
<script setup lang="ts"> <script setup lang="ts">
const props = defineProps<{ const props = defineProps<{
currentPageText: string currentPageText: string
go?: string
}>() }>()
</script> </script>

View File

@ -32,19 +32,24 @@
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, computed, onMounted, watch } from 'vue' import { ref, computed, onMounted, onBeforeMount, watch } from 'vue'
import { useGlobalStore } from '@/stores/globalStore' import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore() const globalStore = useGlobalStore()
import { useRouter, useRoute } from 'vue-router'
const router = useRouter()
const route = useRoute()
interface TabObj { interface TabObj {
[key: string]: any [key: string]: any
text: string text: string
id: string id: string
} }
export interface Props {
const props = defineProps<{
tabList: TabObj[] tabList: TabObj[]
}>() route?: boolean
}
const props = withDefaults(defineProps<Props>(), { route: false })
const currentTab = ref<number>(0) const currentTab = ref<number>(0)
const rnd = ref<number>(Math.ceil(Number(Math.random() * 1000000000))) const rnd = ref<number>(Math.ceil(Number(Math.random() * 1000000000)))
@ -79,6 +84,11 @@
} else { } else {
currentTab.value = Number(d) currentTab.value = Number(d)
} }
if (props.route) {
router.push({
params: { ...route.params, tabid: props.tabList[currentTab.value].id }
})
}
CalculateNavPosition() CalculateNavPosition()
} }
const TabWidth = () => { const TabWidth = () => {
@ -96,14 +106,32 @@
TabWidth() TabWidth()
CalculateNavPosition() CalculateNavPosition()
} }
const RouteTabControl = () => {
if (props.route) {
if (route.params.tabid !== undefined && route.params.tabid !== '') {
currentTab.value = props.tabList.findIndex((t) => t.id === route.params.tabid)
}
}
}
onMounted(() => { onMounted(() => {
TabWidth() TabWidth()
window.addEventListener('resize', Resize) window.addEventListener('resize', Resize)
}) })
onBeforeMount(() => {
RouteTabControl()
})
watch( watch(
() => globalStore.sideMenu, () => globalStore.sideMenu,
() => { () => {
TabWidth() TabWidth()
} }
) )
watch(
() => route.params.tabid,
(t) => {
console.log('---')
RouteTabControl()
},
{ immediate: true }
)
</script> </script>

View File

@ -541,7 +541,7 @@
piyangoStore.lotteryApprove = 0 piyangoStore.lotteryApprove = 0
piyangoStore.isNew = false piyangoStore.isNew = false
piyangoStore.ResetLotteryData() piyangoStore.ResetLotteryData()
router.push('/piyangolar/detay/' + form.id) router.push('/piyangolar/detay/' + form.id+'/piyango-bilgileri')
} else { } else {
GetData() GetData()
} }

View File

@ -2,4 +2,4 @@ import piyangoListe from '@/module/cekilisler/routes/piyango-liste'
import piyangoYeni from '@/module/cekilisler/routes/piyango-yeni' import piyangoYeni from '@/module/cekilisler/routes/piyango-yeni'
import piyangoDetay from '@/module/cekilisler/routes/piyango-detay' import piyangoDetay from '@/module/cekilisler/routes/piyango-detay'
export default [piyangoListe, piyangoYeni, piyangoDetay] export default [piyangoListe, piyangoYeni, ...piyangoDetay]

View File

@ -1,10 +1,19 @@
import PiyangoDetay from '@/module/cekilisler/views/PiyangoDetay.vue' import PiyangoDetay from '@/module/cekilisler/views/PiyangoDetay.vue'
export default { export default [
path: '/piyangolar/detay/:piyangoId', {
name: 'PiyangoDetay', path: '/piyangolar/detay/:piyangoId/',
component: PiyangoDetay, redirect: (to:Record<string,any>) => ({
meta: { name: 'PiyangoDetay',
authRequired: true params: { piyangoId: to.params.piyangoId, tabid: 'piyango-bilgileri' }
})
},
{
path: '/piyangolar/detay/:piyangoId/:tabid',
name: 'PiyangoDetay',
component: PiyangoDetay,
meta: {
authRequired: true
}
} }
} ]

View File

@ -1,8 +1,8 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Piyango Detay" /> <Breadcrumb currentPageText="Piyango Detay" go="/piyangolar/piyango-listesi" />
<tabs :tabList="tabList" v-if="loaded"> <tabs :tabList="tabList" v-if="loaded" route>
<template #piyangobilgileri> <template #piyango-bilgileri>
<tab-piyango-bilgileri-display <tab-piyango-bilgileri-display
v-if=" v-if="
usersStore.isPanelUser || usersStore.isPanelUser ||
@ -12,21 +12,23 @@
" /> " />
<tab-piyango-bilgileri v-else /> <tab-piyango-bilgileri v-else />
</template> </template>
<template #katilimcilistesi><tab-piyango-katilimci-listesi /></template> <template #katilim-listesi><tab-piyango-katilimci-listesi /></template>
<template #talihliler><tab-piyango-talihli-listesi /></template> <template #talihliler><tab-piyango-talihli-listesi /></template>
<template #itirazsikayet><tab-piyango-itiraz /></template> <template #itiraz-sikayet><tab-piyango-itiraz /></template>
<template #piyangologlari><tab-piyango-loglari /></template> <template #piyango-loglari><tab-piyango-loglari /></template>
<template #yetkilendirme v-if="usersStore.isPanelUser"> <template #yetkilendirme v-if="usersStore.isPanelUser">
<tab-piyango-yetkilendirme /> <tab-piyango-yetkilendirme />
</template> </template>
<template #onaydurumu> <template #onay-durumu>
<tab-piyango-onay-durumu v-if="usersStore.isPanelUser" /> <tab-piyango-onay-durumu v-if="usersStore.isPanelUser" />
<tab-piyango-onay-durumu-user v-else /> <tab-piyango-onay-durumu-user v-else />
</template> </template>
<template #teminatlistesi> <template #teminat-listesi>
<tab-piyango-teminat-durumu /> <tab-piyango-teminat-durumu />
</template> </template>
<template #dosyakapama v-if="usersStore.isPanelUser && piyangoStore.lotteryDrawState"> <template
#dosya-kapama
v-if="usersStore.isPanelUser && piyangoStore.lotteryDrawState">
<tab-piyango-dosya-kapama /> <tab-piyango-dosya-kapama />
</template> </template>
</tabs> </tabs>
@ -59,7 +61,7 @@
const loaded = ref<boolean>(false) const loaded = ref<boolean>(false)
const tabList = ref<Record<string, any>[]>([ const tabList = ref<Record<string, any>[]>([
{ text: 'Piyango Bilgileri', id: 'piyangobilgileri' } { text: 'Piyango Bilgileri', id: 'piyango-bilgileri' }
]) ])
const CreateTabs = () => { const CreateTabs = () => {
@ -74,25 +76,25 @@
piyangoStore.lotteryPurposeId !== 3 piyangoStore.lotteryPurposeId !== 3
) { ) {
tabList.value.push( tabList.value.push(
{ text: 'Katılım Listesi', id: 'katilimcilistesi' }, { text: 'Katılım Listesi', id: 'katilim-listesi' },
{ text: 'Talihliler', id: 'talihliler' }, { text: 'Talihliler', id: 'talihliler' },
{ text: 'İtiraz/Şikayet', id: 'itirazsikayet' } { text: 'İtiraz/Şikayet', id: 'itiraz-sikayet' }
) )
} }
if (usersStore.isPanelUser) { if (usersStore.isPanelUser) {
tabList.value.push( tabList.value.push(
{ text: 'Piyango Logları', id: 'piyangologlari' }, { text: 'Piyango Logları', id: 'piyango-loglari' },
{ text: 'Yetkilendirme', id: 'yetkilendirme' } { text: 'Yetkilendirme', id: 'yetkilendirme' }
) )
} }
tabList.value.push({ text: 'Onay Durumu', id: 'onaydurumu' }) tabList.value.push({ text: 'Onay Durumu', id: 'onay-durumu' })
if (piyangoStore.lotteryApprove !== 0 && piyangoStore.lotteryPurposeId !== 3) { if (piyangoStore.lotteryApprove !== 0 && piyangoStore.lotteryPurposeId !== 3) {
tabList.value.push({ text: 'Teminat Listesi', id: 'teminatlistesi' }) tabList.value.push({ text: 'Teminat Listesi', id: 'teminat-listesi' })
} }
if (usersStore.isPanelUser && piyangoStore.lotteryDrawState) { if (usersStore.isPanelUser && piyangoStore.lotteryDrawState) {
tabList.value.push({ text: 'Dosya Kapama', id: 'dosyakapama' }) tabList.value.push({ text: 'Dosya Kapama', id: 'dosya-kapama' })
} }
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Piyango Listesi" /> <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">
@ -230,7 +230,7 @@
// 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) router.push('detay/' + row.id+'/piyango-bilgileri')
} }
onBeforeMount(async () => { onBeforeMount(async () => {

View File

@ -151,10 +151,11 @@
name: 'atanmis', name: 'atanmis',
title: 'Sevk Durumu', title: 'Sevk Durumu',
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>`}else{ </strong>`
} else {
return `<span class="back-grad back-grad-sevk"> return `<span class="back-grad back-grad-sevk">
Sevk Edilmemiş</span>` Sevk Edilmemiş</span>`
} }
@ -164,7 +165,7 @@
// tablodan herhangi bir satır tıklayınca çalısır // tablodan herhangi bir satır tıklayınca çalısır
const rwAction = (row: any) => { const rwAction = (row: any) => {
router.push('/piyangolar/detay/' + row.id) router.push('/piyangolar/detay/' + row.id + '/piyango-bilgileri')
} }
onBeforeMount(async () => { onBeforeMount(async () => {

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Kullanıcı Detay" /> <Breadcrumb currentPageText="Kullanıcı Detay"/>
<tabs :tabList="tabList"> <tabs :tabList="tabList">
<template #birimlistesi> <template #birimlistesi>
<tab-kullanici-birimleri /> <tab-kullanici-birimleri />

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Kullanıcı Detay" /> <Breadcrumb currentPageText="Kullanıcı Detay" go="/kullanicilar/kullanici-liste"/>
<tabs :tabList="tabList"> <tabs :tabList="tabList">
<template #kullanicibilgileri> <template #kullanicibilgileri>
<tab-kullanici-bilgileri /> <tab-kullanici-bilgileri />

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb current-page-text="Kullanıcılar Listesi" /> <Breadcrumb current-page-text="Kullanıcılar Listesi" go="/"/>
<section class="section-list"> <section class="section-list">
<list-table-content <list-table-content
v-if="loaded" v-if="loaded"

View File

@ -24,7 +24,9 @@
class="button-save"> class="button-save">
İzin Bedelini Muhasebeleştir İzin Bedelini Muhasebeleştir
</button> </button>
<router-link :to="'/piyangolar/detay/' + route.params.piyangoId" class="button-c"> <router-link
:to="'/piyangolar/detay/' + route.params.piyangoId + '/piyango-bilgileri'"
class="button-c">
Piyango Detayına Git Piyango Detayına Git
</router-link> </router-link>
</div> </div>

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Muhasebe / Piyango Detay" /> <Breadcrumb currentPageText="Muhasebe / Piyango Detay" go="/muhasebe/piyango-listesi"/>
<tabs :tabList="tabList" v-if="loaded"> <tabs :tabList="tabList" v-if="loaded">
<template #piyangobilgileri> <template #piyangobilgileri>
<tab-muhasebe-piyango-bilgileri-display /> <tab-muhasebe-piyango-bilgileri-display />

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Muhasebe / Piyango Listesi" /> <Breadcrumb currentPageText="Muhasebe / Piyango Listesi" go="/"/>
<section class="section-list"> <section class="section-list">
<list-table-content <list-table-content
v-if="loaded" v-if="loaded"
@ -204,7 +204,7 @@
// 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('/muhasebe/piyango-detay/' + row.id) router.push('/muhasebe/piyango-detay/' + row.id + '/piyango-bilgileri')
} }
onBeforeMount(async () => { onBeforeMount(async () => {

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Menü Listesi" /> <Breadcrumb currentPageText="Menü Listesi" go="/"/>
<section class="section-list"> <section class="section-list">
<list-table-content <list-table-content
:tableHeader="tableHeader" :tableHeader="tableHeader"

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb current-page-text="Menu Yonetimi" /> <Breadcrumb current-page-text="Menu Yonetimi" go="/site-yonetimi/menu-listesi"/>
<div class="form-content"> <div class="form-content">
<div class="form-inner-content form-inner-content-left"> <div class="form-inner-content form-inner-content-left">
<div class="form-part"> <div class="form-part">

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Popup Listesi" /> <Breadcrumb currentPageText="Popup Listesi" go="/"/>
<section class="section-list"> <section class="section-list">
<list-table-content <list-table-content
:tableHeader="tableHeader" :tableHeader="tableHeader"

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb current-page-text="Menu Yonetimi" /> <Breadcrumb current-page-text="Popup Yonetimi" />
<div class="form-content"> <div class="form-content">
<div class="form-inner-content form-inner-content-left"> <div class="form-inner-content form-inner-content-left">
<div class="form-part"> <div class="form-part">

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Sayfa Detay" /> <Breadcrumb currentPageText="Sayfa Detay" go="/site-yonetimi/sayfa-listesi"/>
<div class="form-part form-title"> <div class="form-part form-title">
<div class="form-title-buttons"> <div class="form-title-buttons">
<button <button

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb current-page-text="Sayfa Listesi" /> <Breadcrumb current-page-text="Sayfa Listesi" go="/"/>
<section class="section-list"> <section class="section-list">
<list-table-content <list-table-content
:tableHeader="tableHeader" :tableHeader="tableHeader"

View File

@ -176,7 +176,7 @@
// tablodan herhangi bir satır tıklayınca çalısır // tablodan herhangi bir satır tıklayınca çalısır
const rwAction = (row: any) => { const rwAction = (row: any) => {
router.push('/piyangolar/detay/' + row.id) router.push('/piyangolar/detay/' + row.id + '/piyango-bilgileri')
} }
onBeforeMount(async () => { onBeforeMount(async () => {

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Üye Detay" /> <Breadcrumb currentPageText="Üye Detay" go="/uyeler/uye-liste"/>
<tabs :tabList="tabList"> <tabs :tabList="tabList">
<template #uyebilgileri> <template #uyebilgileri>
<tab-uye-bilgileri /> <tab-uye-bilgileri />

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Üye Detay" /> <Breadcrumb currentPageText="Üye Profil" />
<tabs :tabList="tabList" v-if="loaded"> <tabs :tabList="tabList" v-if="loaded">
<template #uyebilgileri> <template #uyebilgileri>
<tab-uye-bilgileri /> <tab-uye-bilgileri />

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb currentPageText="Yetkili Olunan Kişi/Kurum Detay" /> <Breadcrumb currentPageText="Yetkili Olunan Kişi/Kurum Detay" :go="'/uyeler/detay/'+route.params.uyeId"/>
<tabs :tabList="tabList"> <tabs :tabList="tabList">
<template #kisikurumbilgileri> <template #kisikurumbilgileri>
<tab-yetkili-uye-bilgileri /> <tab-yetkili-uye-bilgileri />

View File

@ -1,6 +1,6 @@
<template> <template>
<AdminLayout> <AdminLayout>
<Breadcrumb current-page-text="Üyeler Listesi" /> <Breadcrumb current-page-text="Üyeler Listesi" go="/"/>
<section class="section-list"> <section class="section-list">
<list-table-content <list-table-content
v-if="loaded" v-if="loaded"