diff --git a/src/assets/style/default.css b/src/assets/style/default.css
index f9006af..93bea4e 100644
--- a/src/assets/style/default.css
+++ b/src/assets/style/default.css
@@ -2162,7 +2162,7 @@ section {
}
.panel-wrapper {
- max-width: 480px;
+ max-width: 600px;
}
.panel-wrapper.panel-wide {
@@ -2175,7 +2175,7 @@ section {
}
.panel-wrapper.panel-right.showme {
- left: calc(100% - 480px);
+ left: calc(100% - 600px);
}
.panel-wrapper.panel-right.panel-wide.showme {
diff --git a/src/components/global/DataTablePagination.vue b/src/components/global/DataTablePagination.vue
index 8afdbd6..226aa30 100644
--- a/src/components/global/DataTablePagination.vue
+++ b/src/components/global/DataTablePagination.vue
@@ -71,6 +71,10 @@
if (Number(pageNumber.value) < totalPage()) pageNumber.value++
}
localPagination.value.pageNumber = pageNumber.value
+ IfRouteUsing()
+ emit('update:pagination', localPagination.value)
+ }
+ const IfRouteUsing = () => {
if (props.isUseRoute) {
router.push({
query: {
@@ -79,16 +83,13 @@
}
})
}
- emit('update:pagination', localPagination.value)
}
-
const InputPageControl = (e: Event) => {
if (Number((e.target as HTMLInputElement).value) < 1)
(e.target as HTMLInputElement).value = '1'
if (Number((e.target as HTMLInputElement).value) > totalPage())
(e.target as HTMLInputElement).value = String(totalPage())
pageNumber.value = Number((e.target as HTMLInputElement).value)
-
if ((e as KeyboardEvent).key === 'Enter') getPage()
}
const PageNumberFocus = (e: Event) => {
@@ -96,6 +97,7 @@
}
const getPage = () => {
localPagination.value.pageNumber = pageNumber.value
+ IfRouteUsing()
emit('update:pagination', localPagination.value)
}
const SetPageNumber = () => {
@@ -104,6 +106,8 @@
localPagination.value.pageNumber = pageNumber.value = Number(
route.query.pageNumber
)
+ } else {
+ localPagination.value.pageNumber = pageNumber.value = 1
}
}
}
diff --git a/src/components/global/ListTableContent.vue b/src/components/global/ListTableContent.vue
index 18f05fe..531210a 100644
--- a/src/components/global/ListTableContent.vue
+++ b/src/components/global/ListTableContent.vue
@@ -61,7 +61,7 @@
@click="exportPanel = !exportPanel"
icon="export" />
@@ -85,7 +85,7 @@
page === 'list' ? 'section-content section-inner' : '',
page === 'form' ? 'form-part-content' : ''
]">
-
+
Filtreler ve Arama
@@ -97,14 +97,21 @@
-
-
- {{ filter.title }}:
-
- {{ filter.text || filter.val }} {{ filter.op === '=' ? '' : filter.op }}
-
-
-
+
+
+
+ {{ filterA.title }}:
+
+ {{ filter.text || filter.val }} {{ filter.op === '=' ? '' : filter.op }}
+
+
+
+
@@ -127,10 +134,7 @@
-
+
Filtrele
@@ -260,11 +264,10 @@
const localTotalRecord = ref(0)
if (props.totalRecord !== undefined) localTotalRecord.value = props.totalRecord
- const localFilterParams = ref>({})
- const filterParams = reactive>({})
+ const localFilterParams = ref[]>([])
+ const filterParams = ref[]>([])
const OpenFilterPanel = () => {
- Object.assign(localFilterParams.value, filterParams)
filterPanel.value = true
}
@@ -273,28 +276,74 @@
if (dest[keys] === undefined) delete source[keys]
})
}
+ const CreateFilterData = () => {
+ props.tableHeader.forEach((d: Record, ind: number) => {
+ if (d.filter !== undefined) {
+ const filterKey = d.filter.filterId || d.name
+ const filterItem: Record = {}
+ const firstVal: Record = {}
+ const secondVal: Record = {}
- const FilterData = async () => {
- Object.keys(filterParams).forEach((k) => {
- delete filterParams[k]
- })
- Object.assign(filterParams, localFilterParams.value)
- EqualObjects(filterParams, localFilterParams.value)
+ filterItem.title = d.title
+ filterItem.type = d.filter.type
+ filterItem.between = d.filter.between || false
+ filterItem.range = d.filter.range || false
+ filterItem.key = filterKey
+ filterItem.filter = false
+ filterItem.hIndex = ind
+ filterItem.values = []
- if (props.isUseRoute) {
- Object.keys(route.query).forEach((k) => {
- if (k.includes('Filters[')) delete route.query[k]
- })
- const q = {
- query: {
- ...route.query
+ const opKey =
+ d.filter.type === 'date'
+ ? d.filter.between !== undefined && d.filter.between
+ ? '>'
+ : '='
+ : '='
+ 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) => {
+ 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, vIndex: number) => {
+ if (val.val !== '') {
+ ;(obj[key] as string[]).push(val.op + val.val)
+ }
+ })
+ }
+ })
+ }
+ const ResetFilterQueries = async () => {
+ if (props.isUseRoute) {
+ const newQuery: Record = {
+ ...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 () => {
await GetLocalData()
filterPanel.value = false
@@ -306,23 +355,32 @@
(props.addAction as Function)()
}
- const filterable = () => {
- return props.tableHeader.filter((e) => e.hasOwnProperty('filter')).length > 0
- }
+ const filterable = computed(() =>
+ props.tableHeader.some((obj: Record) => obj.filter !== undefined)
+ )
- const filters = (): boolean => {
- return Object.keys(filterParams).length > 0
- }
+ const haveFilter = computed(() =>
+ filterParams.value.some((obj: Record) => obj.filter)
+ )
- const RemoveFilterKey = (k: string) => {
- delete localFilterParams.value[k]
- delete filterParams[k]
+ const RemoveFilterKey = (index: number, fIndex: number) => {
const query: Record = { ...route.query }
- Object.keys(query).forEach((q) => {
- if (q.includes(k)) delete query[q]
- })
- router.push({ query: query })
- GetLocalData()
+
+ filterParams.value[index].values[fIndex].val = ''
+ filterParams.value[index].values[fIndex].text = ''
+
+ const allEmpty: boolean = filterParams.value[index].values.every(
+ (obj: Record) => 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 = () => {
localQuery.value = ''
@@ -396,52 +454,61 @@
const RouteFilterControl = () => {
if (props.isUseRoute) {
- const q = { ...route.query }
- localFilterParams.value = {}
- Object.keys(filterParams).forEach((k) => {
- delete filterParams[k]
- })
filterChanging.value = true
+ console.log('c', localFilterParams.value, route.query)
if (Object.keys(route.query).length > 0) {
Object.keys(route.query).forEach((key) => {
if (key.includes('Filters[')) {
const newKey = key.match(/(?<=\[)[^\]]+(?=\])/)![0]
- filterParams[newKey] = {}
- localFilterParams.value[newKey] = {}
- filterParams[newKey].op = (route.query[key]! as string).charAt(0)
- localFilterParams.value[newKey].op = (route.query[key]! as string).charAt(0)
+ localFilterParams.value.forEach((filter: Record) => {
+ 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 forText = props.tableHeader[
+ filter.hIndex
+ ].filter!.data.find(
+ (o: Record) =>
+ String(
+ o[props.tableHeader[filter.hIndex].filter!.listVal]
+ ) === String(filter.values[ind].val)
+ )
+ filter.values[ind].text =
+ forText[props.tableHeader[filter.hIndex].filter!.listText]
+ }
+ })
+ } 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)
- localFilterParams.value[newKey].val = (route.query[key]! as string).slice(1)
+ if (filter.type === 'select') {
+ const forText = props.tableHeader[filter.hIndex].filter!.data.find(
+ (o: Record) =>
+ String(o[props.tableHeader[filter.hIndex].filter!.listVal]) ===
+ String(filter.values[0].val)
+ )
+ filter.values[0].text =
+ forText[props.tableHeader[filter.hIndex].filter!.listText]
+ }
+ }
+ filter.filter = true
+ }
+ }
+ })
}
})
- }
- props.tableHeader.forEach((head: Record) => {
- 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) => {
- 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]
- }
- }
- })
- }
- })
+ filterParams.value = JSON.parse(JSON.stringify(localFilterParams.value))
+ }
nextTick(() => {
filterChanging.value = false
})
@@ -484,11 +551,7 @@
}
// Filtre parametrelerini ekle
- if (filters()) {
- Object.keys(filterParams).forEach((f, k) => {
- exportParams['Filters[' + f + ']'] = filterParams[f].op + filterParams[f].val
- })
- }
+ if (haveFilter.value) AddParamsToObject(exportParams)
// Axios ile dosya indirme - interceptor otomatik olarak token ekleyecek
try {
@@ -538,10 +601,8 @@
var filterparam: Record = {}
- if (filters()) {
- Object.keys(filterParams).forEach((f, k) => {
- filterparam['Filters[' + f + ']'] = filterParams[f].op + filterParams[f].val
- })
+ if (haveFilter.value) {
+ AddParamsToObject(filterparam)
Object.assign(apiData.params, filterparam)
}
let dt = await dataStore.dataGet(props.apiList as string, apiData)
@@ -587,7 +648,7 @@
let el: HTMLInputElement = document.getElementById(
'listsearch' + rnd.value
) as HTMLInputElement
- el.focus
+ el.focus()
el.select()
}, 50)
}
@@ -614,41 +675,17 @@
mobileButtons.value = false
}
- // Filtre başlığını almak için yardımcı fonksiyon
- const getFilterTitle = (key: string): string => {
- const filterTitles: Record = {
- 'durumId': 'Durum',
- 'piyangoAmacId': 'Piyango Amacı',
- 'cekilisYontemiId': 'Çekiliş Yöntemi'
- }
- return filterTitles[key] || key
- }
-
onBeforeMount(() => {
if (globalStore.screenWidth >= globalStore.breakPoints.tabletp)
mobileButtons.value = true
+
+ CreateFilterData()
RoutePageControl()
RouteSortControl()
RouteSearchControl()
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()
-
window.addEventListener('resize', Resize)
})
@@ -678,14 +715,6 @@
}
}
)
- watch(
- () => localPagination.value.pageNumber,
- () => {
- if (!pageNumberChanging.value) {
- GetLocalData()
- }
- }
- )
watch(
() => props.refresh,
() => {
diff --git a/src/components/global/PanelFilter.vue b/src/components/global/PanelFilter.vue
index bd3e9fa..ffbf904 100644
--- a/src/components/global/PanelFilter.vue
+++ b/src/components/global/PanelFilter.vue
@@ -1,107 +1,104 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/global/Tabs.vue b/src/components/global/Tabs.vue
index 49b157a..06e3063 100644
--- a/src/components/global/Tabs.vue
+++ b/src/components/global/Tabs.vue
@@ -32,7 +32,7 @@
diff --git a/src/module/kullanicilar/components/TabKullaniciYetkiliPiyangolar.vue b/src/module/kullanicilar/components/TabKullaniciYetkiliPiyangolar.vue
index 9223aa3..2b95489 100644
--- a/src/module/kullanicilar/components/TabKullaniciYetkiliPiyangolar.vue
+++ b/src/module/kullanicilar/components/TabKullaniciYetkiliPiyangolar.vue
@@ -78,7 +78,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
},
{
@@ -90,7 +90,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
},
{
@@ -102,7 +102,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
},
{
@@ -114,7 +114,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
},
{
diff --git a/src/module/muhasebe/components/display/FormMuhasebePiyangoBilgileriDisplay.vue b/src/module/muhasebe/components/display/FormMuhasebePiyangoBilgileriDisplay.vue
index f439dd1..bdd483e 100644
--- a/src/module/muhasebe/components/display/FormMuhasebePiyangoBilgileriDisplay.vue
+++ b/src/module/muhasebe/components/display/FormMuhasebePiyangoBilgileriDisplay.vue
@@ -217,7 +217,6 @@
}
}
const GetIkramiyeTotalValues = async () => {
- console.log(piyangoStore, 'piyangoStore')
let data = await dataStore.dataGet('Ikramiye/Cekilis/' + piyangoStore.selectedLottery +'?pageNumber=0')
//todo:page 0
if (data !== 'errorfalse') {
@@ -281,7 +280,6 @@
})
}
const BasvuruBedeliMuhasebelestir = async () => {
- console.log('basvuru bedeli muhasebelestir')
let data = await dataStore.dataGet(
'MuhasebeSettings/BasvuruBedeli/' + piyangoStore.selectedLottery
)
diff --git a/src/module/muhasebe/views/MuhasebePiyangoListesi.vue b/src/module/muhasebe/views/MuhasebePiyangoListesi.vue
index 1c46f0d..571607e 100644
--- a/src/module/muhasebe/views/MuhasebePiyangoListesi.vue
+++ b/src/module/muhasebe/views/MuhasebePiyangoListesi.vue
@@ -88,7 +88,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
}
)
@@ -103,7 +103,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
})
}
@@ -119,7 +119,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
},
{
@@ -132,7 +132,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
}
)
diff --git a/src/module/site-yonetimi/views/SliderListe.vue b/src/module/site-yonetimi/views/SliderListe.vue
index acc13e6..9b64044 100644
--- a/src/module/site-yonetimi/views/SliderListe.vue
+++ b/src/module/site-yonetimi/views/SliderListe.vue
@@ -153,10 +153,7 @@
}
const loadSliders = async () => {
const data = await dataStore.dataGet('Slider')
- console.log('apidata', data)
sliders.value = data
-
- console.log(sliders.value)
}
const save = async () => {
diff --git a/src/module/uyeler/components/TabUyePiyangolar.vue b/src/module/uyeler/components/TabUyePiyangolar.vue
index 0758964..4d09588 100644
--- a/src/module/uyeler/components/TabUyePiyangolar.vue
+++ b/src/module/uyeler/components/TabUyePiyangolar.vue
@@ -86,7 +86,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
},
{
@@ -98,7 +98,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
},
{
@@ -110,7 +110,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
},
{
@@ -122,7 +122,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
}
},
{
diff --git a/src/module/uyeler/components/TabUyeYetkiliOlduguKisiKurum.vue b/src/module/uyeler/components/TabUyeYetkiliOlduguKisiKurum.vue
index e459d9e..2d67eb9 100644
--- a/src/module/uyeler/components/TabUyeYetkiliOlduguKisiKurum.vue
+++ b/src/module/uyeler/components/TabUyeYetkiliOlduguKisiKurum.vue
@@ -66,7 +66,7 @@
},
filter: {
type: 'date',
- range: true
+ between: true
},
style: { width: '10%' }
},
diff --git a/src/module/uyeler/components/form/FormUyeOnayLog.vue b/src/module/uyeler/components/form/FormUyeOnayLog.vue
index d41045d..3549086 100644
--- a/src/module/uyeler/components/form/FormUyeOnayLog.vue
+++ b/src/module/uyeler/components/form/FormUyeOnayLog.vue
@@ -51,7 +51,7 @@
sort: true,
filter: {
type: 'date',
- range: true
+ between: true
},
style:{width:'15%'}
},
diff --git a/src/module/uyeler/views/UyelerListe.vue b/src/module/uyeler/views/UyelerListe.vue
index 7d0caca..05c84c8 100644
--- a/src/module/uyeler/views/UyelerListe.vue
+++ b/src/module/uyeler/views/UyelerListe.vue
@@ -63,7 +63,7 @@
},
filter: {
type: 'date',
- range: true
+ between: true
},
style: { width: '10%' }
},