ilk commit

This commit is contained in:
burakovec
2025-07-04 14:11:18 +03:00
parent 7604d77a89
commit 1754e646a8
306 changed files with 24956 additions and 0 deletions

210
src/stores/dataStore.ts Normal file
View File

@ -0,0 +1,210 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
import { useGlobalDataStore } from '@/stores/globalDataStore'
import { useToastStore } from '@/components/global/toastStore'
import axios from 'axios'
export const useDataStore = defineStore('dataStore', () => {
const globalDataStore = useGlobalDataStore()
const toastStore = useToastStore()
const siteBase = ref<string>('https://mpiapi.beyaz.net/')
const apiBase = ref<string>('api/')
const panelData = reactive<Record<string, any>>({})
const pageData = reactive<Record<string, any>>({})
const panelDataChanged = ref<boolean>(false)
const pageDataChanged = ref<boolean>(false)
const pageDataUpdate = ref<boolean>(false)
const isLoading = ref<boolean>(false)
const dataGet = async (
api: string,
data: {
data?: any
params?: Record<string, any>
headers?: Record<string, any>
options?: Record<string, any>
toast?: Record<string, any>
full?: boolean
} = {}
) => {
try {
const sendData: Record<string, any> = {}
if (data.options !== undefined) Object.assign(sendData, data.options)
if (data.data !== undefined) sendData.data = data.data
if (data.params !== undefined) sendData.params = data.params
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)
console.log('response --', api, response)
if (data.full !== undefined && data.full) {
return response
} else {
return response.data
}
} catch (error: any) {
CheckApiError(error.response.status, error.response.data)
console.error('Hata oluştu -:', error)
return 'errorfalse'
}
}
const dataPost = async (
api: string,
data: {
data?: any
params?: Record<string, any>
headers?: Record<string, any>
options?: Record<string, any>
toast?: Record<string, any>
full?: boolean
} = {}
): Promise<any> => {
try {
const sendData: Record<string, any> = {}
const postData = data.data || {}
if (data.options !== undefined) Object.assign(sendData, data.options)
if (data.params !== undefined) sendData.params = data.params
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.post(apiBase.value + api, postData, sendData)
if (data.full !== undefined && data.full) {
return response
} else {
return response.data
}
} catch (error: any) {
CheckApiError(error.response.status, error.response.data)
console.error('Hata oluştu:', error)
return Promise.resolve('errorfalse')
}
}
const dataPut = async (
api: string,
data: {
data?: any
params?: Record<string, any>
headers?: Record<string, any>
options?: Record<string, any>
toast?: Record<string, any>
full?: boolean
} = {}
): Promise<any> => {
try {
const sendData: Record<string, any> = {}
const postData = data.data || {}
if (data.options !== undefined) Object.assign(sendData, data.options)
if (data.params !== undefined) sendData.params = data.params
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.put(apiBase.value + api, postData, sendData)
if (data.full !== undefined && data.full) {
return response
} else {
return response.data
}
} catch (error: any) {
CheckApiError(error.response.status, error.response.data)
console.error('Hata oluştu:', error)
return Promise.resolve('errorfalse')
}
}
const dataDelete = async (
api: string,
data: {
data?: object
params?: Record<string, any>
headers?: Record<string, any>
options?: Record<string, any>
toast?: Record<string, any>
full?: boolean
} = {}
): Promise<any> => {
try {
const sendData: Record<string, any> = {}
if (data.options !== undefined) Object.assign(sendData, data.options)
if (data.params !== undefined) sendData.params = data.params
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.delete(apiBase.value + api, sendData)
if (data.full !== undefined && data.full) {
return response
} else {
return response.data
}
} catch (error: any) {
CheckApiError(error.response.status, error.response.data)
console.error('Hata oluştu:', error)
return Promise.resolve('errorfalse')
}
}
const CheckApiError = async (status: number, data: Record<string, any>) => {
if (status === 400) {
const errorKey = data['hata'] || data['errors']
if (errorKey !== undefined) {
errorKey.forEach((el: string) => {
toastStore.AddToast(el, 'alert')
})
} else {
toastStore.AddToast('Bir hata oluştu.', 'alert')
}
}
}
const GetCustomerTipList = async () => {
if (globalDataStore.customerTips.length === 0) {
let list = await dataGet('Auth/uyetipiList')
if (list !== 'errorfalse') globalDataStore.customerTips = list
}
}
const GetIlList = async () => {
if (globalDataStore.ilList.length === 0) {
let list = await dataGet('Il')
if (list !== 'errorfalse') globalDataStore.ilList = list
}
}
return {
isLoading,
siteBase,
apiBase,
panelData,
pageData,
panelDataChanged,
pageDataChanged,
pageDataUpdate,
dataGet,
dataPost,
dataPut,
dataDelete,
GetCustomerTipList,
GetIlList
}
})

105
src/stores/dateStore.ts Normal file
View File

@ -0,0 +1,105 @@
import { defineStore } from 'pinia'
export const useDateStore = defineStore('dateStore', {
state: () => ({
dayNames: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi'],
dayShortNames: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cts'],
monthNames: [
{ name: 'Ocak', val: 0 },
{ name: 'Şubat', val: 1 },
{ name: 'Mart', val: 2 },
{ name: 'Nisan', val: 3 },
{ name: 'Mayıs', val: 4 },
{ name: 'Haziran', val: 5 },
{ name: 'Temmuz', val: 6 },
{ name: 'Ağustos', val: 7 },
{ name: 'Eylül', val: 8 },
{ name: 'Ekim', val: 9 },
{ name: 'Kasım', val: 10 },
{ name: 'Aralık', val: 11 }
]
}),
actions: {
dateFormat({
pattern = 'dd-mm-yy-ddd-tt',
date,
splitDate = '/',
splitTime = ' '
}: {
pattern?: string
date?: Date | string | null
splitDate?: string
splitTime?: string
}): string {
let formattedDate = ''
let inDate = date !== null && date !== undefined ? new Date(date) : new Date()
let patternA = pattern.split('-')
for (let i = 0; i < patternA.length; i++) {
if (patternA[i] == 'y') formattedDate += inDate.getFullYear().toString().slice(-2)
if (patternA[i] == 'yy') formattedDate += inDate.getFullYear()
if (patternA[i] == 'm') formattedDate += inDate.getMonth() + 1
if (patternA[i] == 'mm')
formattedDate += (inDate.getMonth() + 1).toString().padStart(2, '0')
if (patternA[i] == 'mmm')
formattedDate += this.monthNames[inDate.getMonth()].name.slice(0, 3)
if (patternA[i] == 'mmmm')
formattedDate += this.monthNames[inDate.getMonth()].name
if (patternA[i] == 'd') formattedDate += inDate.getDate()
if (patternA[i] == 'dd')
formattedDate += inDate.getDate().toString().padStart(2, '0')
if (patternA[i] == 'ddd' || patternA[i] == 'dddd') {
if (i > 0) {
let lc = formattedDate.slice(-1)
if (lc == splitDate)
formattedDate = formattedDate.slice(0, formattedDate.length - 1)
formattedDate += ' '
}
if (patternA[i] == 'ddd') formattedDate += this.dayShortNames[inDate.getDay()]
if (patternA[i] == 'dddd') formattedDate += this.dayNames[inDate.getDay()]
if (i == 0) formattedDate += ' '
}
if (patternA[i] == 't' || patternA[i] == 'tt' || patternA[i] == 'ttt') {
if (i > 0) {
let lc = formattedDate.slice(-1)
if (lc == splitDate)
formattedDate = formattedDate.slice(0, formattedDate.length - 1)
formattedDate += splitTime
}
if (patternA[i] == 't')
formattedDate +=
inDate.getHours().toString().padStart(2, '0') +
':' +
inDate.getMinutes().toString().padStart(2, '0')
if (patternA[i] == 'tt')
formattedDate +=
inDate.getHours().toString().padStart(2, '0') +
':' +
inDate.getMinutes().toString().padStart(2, '0') +
':' +
inDate.getSeconds().toString().padStart(2, '0')
if (patternA[i] == 'ttt')
formattedDate +=
inDate.getHours().toString().padStart(2, '0') +
':' +
inDate.getMinutes().toString().padStart(2, '0') +
':' +
inDate.getSeconds().toString().padStart(2, '0') +
'.' +
inDate.getMilliseconds()
if (i == 0) formattedDate += splitTime
}
if (
i != patternA.length - 1 &&
patternA[i] != 'ddd' &&
patternA[i] != 'dddd' &&
patternA[i] != 't' &&
patternA[i] != 'tt' &&
patternA[i] != 'ttt'
)
formattedDate += splitDate
}
return formattedDate
}
}
})

View File

@ -0,0 +1,12 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useGlobalDataStore = defineStore('globalDataStore', () => {
const customerTips = ref<Record<string, any>[]>([])
const ilList = ref<Record<string, any>[]>([])
return {
customerTips,
ilList
}
})

14
src/stores/pageStore.ts Normal file
View File

@ -0,0 +1,14 @@
import { defineStore } from 'pinia'
import { useRoute } from 'vue-router'
export const usePageStore = defineStore('pageStore', () => {
const route = useRoute()
const IsAuthPage = (): boolean => {
return route.meta.authpage as boolean
}
return {
IsAuthPage
}
})

147
src/stores/previewStore.ts Normal file
View File

@ -0,0 +1,147 @@
import { defineStore } from 'pinia'
import { useDataStore } from '@/stores/dataStore'
import { useGlobalStore } from '@/stores/globalStore'
import htmlToPdfMake from 'html-to-pdfmake'
export const usePreviewStore = defineStore('previewStore', () => {
const dataStore = useDataStore()
const globalStore = useGlobalStore()
const DownloadPDF = async (content: string) => {
var pdfData = `<style>
.form-item{
width: 100%;
border: 1px solid #dddddd;
float:left;
}
.form-item-half{
width:49%;
}
.display-title{
width: 100%;
padding: 8px 0;
border-bottom: 1px solid #e7e7e7;
margin-bottom: 8px;
}
</style>`
pdfData += content
let pdf: any = await dataStore.dataPost('Auth/GeneratePdfFromHtml/', {
data: pdfData,
options: {
responseType: 'arraybuffer'
},
full: true
})
var filename = ''
var dispos = pdf.headers['content-disposition']
var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/
var matches = filenameRegex.exec(dispos)
if (matches != null && matches[1]) {
filename = matches[1].replace(/['"]/g, '')
filename = decodeURIComponent(filename)
}
const file = new Blob([pdf.data], { type: 'application/pdf' })
const url = URL.createObjectURL(file)
const link = document.createElement('a')
link.href = url
link.download = globalStore.CreateSlug(filename)
document.body.appendChild(link)
link.dispatchEvent(
new MouseEvent('click', { bubbles: true, cancelable: true, view: window })
)
link.remove()
window.URL.revokeObjectURL(link.href)
}
const CreatePdfFromHtml = (make: any, content: string) => {
const converted = htmlToPdfMake(content)
var tableLayouts = {
pdfTableLayout: {
hLineWidth: function () {
return 1
},
vLineWidth: function () {
return 1
},
hLineColor: function () {
return '#e7e7e7'
},
vLineColor: function () {
return '#e7e7e7'
},
paddingLeft: function () {
return 6
},
paddingRight: function () {
return 6
},
paddingTop: function () {
return 6
},
paddingBottom: function () {
return 6
}
},
pdfTableLayoutNoLine: {
hLineWidth: function () {
return 0
},
vLineWidth: function () {
return 0
},
hLineColor: function () {
return '#fff'
},
vLineColor: function () {
return '#fff'
},
paddingLeft: function () {
return 0
},
paddingRight: function () {
return 0
},
paddingTop: function () {
return 0
},
paddingBottom: function () {
return 6
}
}
}
make.addTableLayouts(tableLayouts)
const docDefinition = {
pageSize: 'A4',
pageMargins: [20, 40, 20, 40],
content: converted
}
make.createPdf(docDefinition).download()
}
const PrintContent = (id: number) => {
var el: HTMLElement = document.getElementById('pre' + id) as HTMLElement
var printContent = el.innerHTML
document.body.classList.add('print')
const printEl = document.createElement('div')
printEl.className = 'print-c'
printEl.innerHTML = printContent
document.body.appendChild(printEl)
window.print()
document.body.classList.remove('print')
printEl.remove()
}
return {
DownloadPDF,
PrintContent,
CreatePdfFromHtml
}
})

332
src/stores/sehirlerStore.ts Normal file
View File

@ -0,0 +1,332 @@
import {defineStore} from "pinia";
export const useSehirlerStore = defineStore('sehirlerStore', () => {
const ililce = [
{
"il": "Adana",
"ilceler": ["Aladağ", "Ceyhan", "Çukurova", "Feke", "İmamoğlu", "Karaisalı", "Karataş", "Kozan", "Pozantı", "Saimbeyli", "Sarıçam", "Seyhan", "Tufanbeyli", "Yumurtalık", "Yüreğir"]
},
{
"il": "Adıyaman",
"ilceler": ["Besni", "Çelikhan", "Gerger", "Gölbaşı", "Kahta", "Merkez", "Samsat", "Sincik", "Tut"]
},
{
"il": "Afyonkarahisar",
"ilceler": ["Başmakçı", "Bayat", "Bolvadin", "Çay", "Çobanlar", "Dazkırı", "Dinar", "Emirdağ", "Evciler", "Hocalar", "İhsaniye", "İscehisar", "Kızılören", "Merkez", "Sandıklı", "Sinanpaşa", "Sultandağı", "Şuhut"]
},
{
"il": "Ağrı",
"ilceler": ["Diyadin", "Doğubayazıt", "Eleşkirt", "Hamur", "Merkez", "Patnos", "Taşlıçay", "Tutak"]
},
{
"il": "Aksaray",
"ilceler": ["Ağaçören", "Eskil", "Gülağaç", "Güzelyurt", "Merkez", "Ortaköy", "Sarıyahşi"]
},
{
"il": "Amasya",
"ilceler": ["Göynücek", "Gümüşhacıköy", "Hamamözü", "Merkez", "Merzifon", "Suluova", "Taşova"]
},
{
"il": "Ankara",
"ilceler": ["Akyurt", "Altındağ", "Ayaş", "Bala", "Beypazarı", "Çamlıdere", "Çankaya", "Çubuk", "Elmadağ", "Etimesgut", "Evren", "Gölbaşı", "Güdül", "Haymana", "Kalecik", "Kahramankazan", "Keçiören", "Kızılcahamam", "Mamak", "Nallıhan", "Polatlı", "Pursaklar", "Sincan", "Şereflikoçhisar", "Yenimahalle"]
},
{
"il": "Antalya",
"ilceler": ["Akseki", "Aksu", "Alanya", "Döşemealtı", "Elmalı", "Finike", "Gazipaşa", "Gündoğmuş", "İbradı", "Kaş", "Kemer", "Kepez", "Konyaaltı", "Korkuteli", "Kumluca", "Manavgat", "Muratpaşa", "Serik"]
},
{
"il": "Ardahan",
"ilceler": [ıldır", "Damal", "Göle", "Hanak", "Merkez", "Posof"]
},
{
"il": "Artvin",
"ilceler": ["Ardanuç", "Arhavi", "Borçka", "Hopa", "Kemalpaşa", "Merkez", "Murgul", "Şavşat", "Yusufeli"]
},
{
"il": "Aydın",
"ilceler": ["Bozdoğan", "Buharkent", "Çine", "Didim", "Efeler", "Germencik", "İncirliova", "Karacasu", "Karpuzlu", "Koçarlı", "Köşk", "Kuşadası", "Kuyucak", "Nazilli", "Söke", "Sultanhisar", "Yenipazar"]
},
{
"il": "Balıkesir",
"ilceler": ["Altıeylül", "Ayvalık", "Balya", "Bandırma", "Bigadiç", "Burhaniye", "Dursunbey", "Edremit", "Erdek", "Gömeç", "Gönen", "Havran", "İvrindi", "Karesi", "Kepsut", "Manyas", "Marmara", "Savaştepe", "Sındırgı", "Susurluk"]
},
{
"il": "Bartın",
"ilceler": ["Amasra", "Kurucaşile", "Merkez", "Ulus"]
},
{
"il": "Batman",
"ilceler": ["Beşiri", "Gercüş", "Hasankeyf", "Kozluk", "Merkez", "Sason"]
},
{
"il": "Bayburt",
"ilceler": ["Aydıntepe", "Demirözü", "Merkez"]
},
{
"il": "Bilecik",
"ilceler": ["Bozüyük", "Gölpazarı", "İnhisar", "Merkez", "Osmaneli", "Pazaryeri", "Söğüt", "Yenipazar"]
},
{
"il": "Bingöl",
"ilceler": ["Adaklı", "Genç", "Karlıova", "Kiğı", "Merkez", "Solhan", "Yayladere", "Yedisu"]
},
{
"il": "Bitlis",
"ilceler": ["Adilcevaz", "Ahlat", "Güroymak", "Hizan", "Merkez", "Mutki", "Tatvan"]
},
{
"il": "Bolu",
"ilceler": ["Dörtdivan", "Gerede", "Göynük", "Kıbrıscık", "Mengen", "Merkez", "Mudurnu", "Seben", "Yeniçağa"]
},
{
"il": "Burdur",
"ilceler": ["Ağlasun", "Altınyayla", "Bucak", "Çavdır", "Çeltikçi", "Gölhisar", "Karamanlı", "Kemer", "Merkez", "Tefenni", "Yeşilova"]
},
{
"il": "Bursa",
"ilceler": ["Büyükorhan", "Gemlik", "Gürsu", "Harmancık", "İnegöl", "İznik", "Karacabey", "Keles", "Kestel", "Mudanya", "Mustafakemalpaşa", "Nilüfer", "Orhaneli", "Orhangazi", "Osmangazi", "Yenişehir", "Yıldırım"]
},
{
"il": "Çanakkale",
"ilceler": ["Ayvacık", "Bayramiç", "Biga", "Bozcaada", "Çan", "Eceabat", "Ezine", "Gelibolu", "Gökçeada", "Lapseki", "Merkez", "Yenice"]
},
{
"il": "Çankırı",
"ilceler": ["Atkaracalar", "Bayramören", "Çerkeş", "Eldivan", "Ilgaz", "Kızılırmak", "Korgun", "Kurşunlu", "Merkez", "Orta", "Şabanözü", "Yapraklı"]
},
{
"il": "Çorum",
"ilceler": ["Alaca", "Bayat", "Boğazkale", "Dodurga", "İskilip", "Kargı", "Laçin", "Mecitözü", "Merkez", "Oğuzlar", "Ortaköy", "Osmancık", "Sungurlu", "Uğurludağ"]
},
{
"il": "Denizli",
"ilceler": ["Acıpayam", "Babadağ", "Baklan", "Bekilli", "Beyağaç", "Bozkurt", "Buldan", "Çal", "Çameli", "Çardak", "Çivril", "Güney", "Honaz", "Kale", "Merkezefendi", "Pamukkale", "Sarayköy", "Serinhisar", "Tavas"]
},
{
"il": "Diyarbakır",
"ilceler": ["Bağlar", "Bismil", "Çermik", ınar", "Çüngüş", "Dicle", "Eğil", "Ergani", "Hani", "Hazro", "Kayapınar", "Kocaköy", "Kulp", "Lice", "Silvan", "Sur", "Yenişehir"]
},
{
"il": "Düzce",
"ilceler": ["Akçakoca", "Cumayeri", "Çilimli", "Gölyaka", "Gümüşova", "Kaynaşlı", "Merkez", "Yığılca"]
},
{
"il": "Edirne",
"ilceler": ["Enez", "Havsa", "İpsala", "Keşan", "Lalapaşa", "Meriç", "Merkez", "Süloğlu", "Uzunköprü"]
},
{
"il": "Elazığ",
"ilceler": ["Ağın", "Alacakaya", "Arıcak", "Baskil", "Karakoçan", "Keban", "Kovancılar", "Maden", "Merkez", "Palu", "Sivrice"]
},
{
"il": "Erzincan",
"ilceler": ["Çayırlı", "İliç", "Kemah", "Kemaliye", "Merkez", "Otlukbeli", "Refahiye", "Tercan", "Üzümlü"]
},
{
"il": "Erzurum",
"ilceler": ["Aşkale", "Aziziye", "Çat", "Hınıs", "Horasan", "İspir", "Karaçoban", "Karayazı", "Köprüköy", "Narman", "Oltu", "Olur", "Palandöken", "Pasinler", "Pazaryolu", "Şenkaya", "Tekman", "Tortum", "Uzundere", "Yakutiye"]
},
{
"il": "Eskişehir",
"ilceler": ["Alpu", "Beylikova", "Çifteler", "Günyüzü", "Han", "İnönü", "Mahmudiye", "Mihalgazi", "Mihalıççık", "Odunpazarı", "Sarıcakaya", "Seyitgazi", "Sivrihisar", "Tepebaşı"]
},
{
"il": "Gaziantep",
"ilceler": ["Araban", "İslahiye", "Karkamış", "Nizip", "Nurdağı", "Oğuzeli", "Şahinbey", "Şehitkamil", "Yavuzeli"]
},
{
"il": "Giresun",
"ilceler": ["Alucra", "Bulancak", "Çamoluk", "Çanakçı", "Dereli", "Doğankent", "Espiye", "Eynesil", "Görele", "Güce", "Keşap", "Merkez", "Piraziz", "Şebinkarahisar", "Tirebolu", "Yağlıdere"]
},
{
"il": "Gümüşhane",
"ilceler": ["Kelkit", "Köse", "Kürtün", "Merkez", "Şiran", "Torul"]
},
{
"il": "Hakkari",
"ilceler": ["Çukurca", "Derecik", "Merkez", "Şemdinli", "Yüksekova"]
},
{
"il": "Hatay",
"ilceler": ["Altınözü", "Antakya", "Arsuz", "Belen", "Defne", "Dörtyol", "Erzin", "Hassa", "İskenderun", "Kırıkhan", "Kumlu", "Payas", "Reyhanlı", "Samandağ", "Yayladağı"]
},
{
"il": "Iğdır",
"ilceler": ["Aralık", "Karakoyunlu", "Merkez", "Tuzluca"]
},
{
"il": "Isparta",
"ilceler": ["Aksu", "Atabey", "Eğirdir", "Gelendost", "Gönen", "Keçiborlu", "Merkez", "Senirkent", "Sütçüler", "Şarkikaraağaç", "Uluborlu", "Yalvaç", "Yenişarbademli"]
},
{
"il": "İstanbul",
"ilceler": ["Adalar", "Arnavutköy", "Ataşehir", "Avcılar", "Bağcılar", "Bahçelievler", "Bakırköy", "Başakşehir", "Bayrampaşa", "Beşiktaş", "Beykoz", "Beylikdüzü", "Beyoğlu", "Büyükçekmece", "Çatalca", "Çekmeköy", "Esenler", "Esenyurt", "Eyüpsultan", "Fatih", "Gaziosmanpaşa", "Güngören", "Kadıköy", "Kağıthane", "Kartal", "Küçükçekmece", "Maltepe", "Pendik", "Sancaktepe", "Sarıyer", "Silivri", "Sultanbeyli", "Sultangazi", "Şile", "Şişli", "Tuzla", "Ümraniye", "Üsküdar", "Zeytinburnu"]
},
{
"il": "İzmir",
"ilceler": ["Aliağa", "Balçova", "Bayındır", "Bayraklı", "Bergama", "Beydağ", "Bornova", "Buca", "Çeşme", "Çiğli", "Dikili", "Foça", "Gaziemir", "Güzelbahçe", "Karabağlar", "Karaburun", "Karşıyaka", "Kemalpaşa", "Kınık", "Kiraz", "Konak", "Menderes", "Menemen", "Narlıdere", "Ödemiş", "Seferihisar", "Selçuk", "Tire", "Torbalı", "Urla"]
},
{
"il": "Kahramanmaraş",
"ilceler": ["Afşin", "Andırın", "Dulkadiroğlu", "Ekinözü", "Elbistan", "Göksun", "Nurhak", "Onikişubat", "Pazarcık", "Türkoğlu"]
},
{
"il": "Karabük",
"ilceler": ["Eflani", "Eskipazar", "Merkez", "Ovacık", "Safranbolu", "Yenice"]
},
{
"il": "Karaman",
"ilceler": ["Ayrancı", "Başyayla", "Ermenek", "Kazımkarabekir", "Merkez", "Sarıveliler"]
},
{
"il": "Kars",
"ilceler": ["Akyaka", "Arpaçay", "Digor", "Kağızman", "Merkez", "Sarıkamış", "Selim", "Susuz"]
},
{
"il": "Kastamonu",
"ilceler": ["Abana", "Ağlı", "Araç", "Azdavay", "Bozkurt", "Cide", "Çatalzeytin", "Daday", "Devrekani", "Doğanyurt", "Hanönü", "İhsangazi", "İnebolu", "Küre", "Merkez", "Pınarbaşı", "Şenpazar", "Seydiler", "Taşköprü", "Tosya"]
},
{
"il": "Kayseri",
"ilceler": ["Akkışla", "Bünyan", "Develi", "Felahiye", "Hacılar", "İncesu", "Kocasinan", "Melikgazi", "Özvatan", "Pınarbaşı", "Sarıoğlan", "Sarız", "Talas", "Tomarza", "Yahyalı", "Yeşilhisar"]
},
{
"il": "Kırıkkale",
"ilceler": ["Bahşili", "Balışeyh", "Çelebi", "Delice", "Karakeçili", "Keskin", "Merkez", "Sulakyurt", "Yahşihan"]
},
{
"il": "Kırklareli",
"ilceler": ["Demirköy", "Kofçaz", "Lüleburgaz", "Merkez", "Pehlivanköy", "Pınarhisar", "Vize"]
},
{
"il": "Kırşehir",
"ilceler": ["Akçakent", "Akpınar", "Boztepe", "Çiçekdağı", "Kaman", "Merkez", "Mucur"]
},
{
"il": "Kilis",
"ilceler": ["Elbeyli", "Merkez", "Musabeyli", "Polateli"]
},
{
"il": "Kocaeli",
"ilceler": ["Başiskele", "Çayırova", "Darıca", "Derince", "Dilovası", "Gebze", "Gölcük", "İzmit", "Kandıra", "Karamürsel", "Kartepe", "Körfez"]
},
{
"il": "Konya",
"ilceler": ["Ahırlı", "Akören", "Akşehir", "Altınekin", "Beyşehir", "Bozkır", "Cihanbeyli", "Çeltik", "Çumra", "Derbent", "Derebucak", "Doğanhisar", "Emirgazi", "Ereğli", "Güneysınır", "Hadim", "Halkapınar", "Hüyük", "Ilgın", "Kadınhanı", "Karapınar", "Karatay", "Kulu", "Meram", "Sarayönü", "Selçuklu", "Seydişehir", "Taşkent", "Tuzlukçu", "Yalıhüyük", "Yunak"]
},
{
"il": "Kütahya",
"ilceler": ["Altıntaş", "Aslanapa", "Çavdarhisar", "Domaniç", "Dumlupınar", "Emet", "Gediz", "Hisarcık", "Merkez", "Pazarlar", "Şaphane", "Simav", "Tavşanlı"]
},
{
"il": "Malatya",
"ilceler": ["Akçadağ", "Arapgir", "Arguvan", "Battalgazi", "Darende", "Doğanşehir", "Doğanyol", "Hekimhan", "Kale", "Kuluncak", "Pütürge", "Yazıhan", "Yeşilyurt"]
},
{
"il": "Manisa",
"ilceler": ["Ahmetli", "Akhisar", "Alaşehir", "Demirci", "Gölmarmara", "Gördes", "Kırkağaç", "Köprübaşı", "Kula", "Salihli", "Sarıgöl", "Saruhanlı", "Selendi", "Soma", "Şehzadeler", "Turgutlu", "Yunusemre"]
},
{
"il": "Mardin",
"ilceler": ["Artuklu", "Dargeçit", "Derik", "Kızıltepe", "Mazıdağı", "Midyat", "Nusaybin", "Ömerli", "Savur", "Yeşilli"]
},
{
"il": "Mersin",
"ilceler": ["Akdeniz", "Anamur", "Aydıncık", "Bozyazı", "Çamlıyayla", "Erdemli", "Gülnar", "Mezitli", "Mut", "Silifke", "Tarsus", "Toroslar", "Yenişehir"]
},
{
"il": "Muğla",
"ilceler": ["Bodrum", "Dalaman", "Datça", "Fethiye", "Kavaklıdere", "Köyceğiz", "Marmaris", "Menteşe", "Milas", "Ortaca", "Seydikemer", "Ula", "Yatağan"]
},
{
"il": "Muş",
"ilceler": ["Bulanık", "Hasköy", "Korkut", "Malazgirt", "Merkez", "Varto"]
},
{
"il": "Nevşehir",
"ilceler": ["Avanos", "Derinkuyu", "Gülşehir", "Hacıbektaş", "Kozaklı", "Merkez", "Ürgüp"]
},
{
"il": "Niğde",
"ilceler": ["Altunhisar", "Bor", "Çamardı", "Çiftlik", "Merkez", "Ulukışla"]
},
{
"il": "Ordu",
"ilceler": ["Akkuş", "Altınordu", "Aybastı", "Çamaş", "Çatalpınar", "Çaybaşı", "Fatsa", "Gölköy", "Gülyalı", "Gürgentepe", "İkizce", "Kabadüz", "Kabataş", "Korgan", "Kumru", "Mesudiye", "Perşembe", "Ulubey", "Ünye"]
},
{
"il": "Osmaniye",
"ilceler": ["Bahçe", "Düziçi", "Hasanbeyli", "Kadirli", "Merkez", "Sumbas", "Toprakkale"]
},
{
"il": "Rize",
"ilceler": ["Ardeşen", "Çamlıhemşin", "Çayeli", "Derepazarı", "Fındıklı", "Güneysu", "Hemşin", "İkizdere", "İyidere", "Kalkandere", "Merkez", "Pazar"]
},
{
"il": "Sakarya",
"ilceler": ["Adapazarı", "Akyazı", "Arifiye", "Erenler", "Ferizli", "Geyve", "Hendek", "Karapürçek", "Karasu", "Kaynarca", "Kocaali", "Pamukova", "Sapanca", "Serdivan", "Söğütlü", "Taraklı"]
},
{
"il": "Samsun",
"ilceler": ["Alaçam", "Asarcık", "Atakum", "Ayvacık", "Bafra", "Canik", "Çarşamba", "Havza", "İlkadım", "Kavak", "Ladik", "Ondokuzmayıs", "Salıpazarı", "Tekkeköy", "Terme", "Vezirköprü", "Yakakent"]
},
{
"il": "Siirt",
"ilceler": ["Baykan", "Eruh", "Kurtalan", "Merkez", "Pervari", "Şirvan", "Tillo"]
},
{
"il": "Sinop",
"ilceler": ["Ayancık", "Boyabat", "Dikmen", "Durağan", "Erfelek", "Gerze", "Merkez", "Saraydüzü", "Türkeli"]
},
{
"il": "Sivas",
"ilceler": ["Akıncılar", "Altınyayla", "Divriği", "Doğanşar", "Gemerek", "Gölova", "Gürün", "Hafik", "İmranlı", "Kangal", "Koyulhisar", "Merkez", "Suşehri", "Şarkışla", "Ulaş", "Yıldızeli", "Zara"]
},
{
"il": "Şanlıurfa",
"ilceler": ["Akçakale", "Birecik", "Bozova", "Ceylanpınar", "Eyyübiye", "Halfeti", "Haliliye", "Harran", "Hilvan", "Karaköprü", "Siverek", "Suruç", "Viranşehir"]
},
{
"il": ırnak",
"ilceler": ["Beytüşşebap", "Cizre", "Güçlükonak", "İdil", "Silopi", "Uludere"]
},
{
"il": "Tekirdağ",
"ilceler": ["Çerkezköy", "Çorlu", "Ergene", "Hayrabolu", "Kapaklı", "Malkara", "Marmaraereğlisi", "Muratlı", "Saray", "Süleymanpaşa", "Şarköy"]
},
{
"il": "Tokat",
"ilceler": ["Almus", "Artova", "Başçiftlik", "Erbaa", "Merkez", "Niksar", "Pazar", "Reşadiye", "Sulusaray", "Turhal", "Yeşilyurt", "Zile"]
},
{
"il": "Trabzon",
"ilceler": ["Akçaabat", "Araklı", "Arsin", "Beşikdüzü", "Çarşıbaşı", "Çaykara", "Dernekpazarı", "Düzköy", "Hayrat", "Köprübaşı", "Maçka", "Of", "Ortahisar", "Sürmene", "Şalpazarı", "Tonya", "Vakfıkebir", "Yomra"]
},
{
"il": "Tunceli",
"ilceler": ["Çemişgezek", "Hozat", "Mazgirt", "Merkez", "Nazımiye", "Ovacık", "Pertek", "Pülümür"]
},
{
"il": "Uşak",
"ilceler": ["Banaz", "Eşme", "Karahallı", "Merkez", "Sivaslı", "Ulubey"]
},
{
"il": "Van",
"ilceler": ["Bahçesaray", "Başkale", "Çaldıran", "Çatak", "Edremit", "Erciş", "Gevaş", "Gürpınar", "İpekyolu", "Muradiye", "Özalp", "Saray", "Tuşba"]
},
{
"il": "Yalova",
"ilceler": ["Altınova", "Armutlu", ınarcık", "Çiftlikköy", "Merkez", "Termal"]
},
{
"il": "Yozgat",
"ilceler": ["Akdağmadeni", "Aydıncık", "Boğazlıyan", "Çandır", "Çayıralan", "Çekerek", "Kadışehri", "Merkez", "Saraykent", "Sarıkaya", "Sorgun", "Şefaatli", "Yenifakılı", "Yerköy"]
},
{
"il": "Zonguldak",
"ilceler": ["Alaplı", "Çaycuma", "Devrek", "Gökçebey", "Kilimli", "Kozlu", "Merkez"]
}
]
return {ililce}
})

193
src/stores/usersStore.ts Normal file
View File

@ -0,0 +1,193 @@
import { defineStore } from 'pinia'
import { ref, reactive, computed } from 'vue'
import { useRoute } from 'vue-router'
import { useCustomerStore } from '@/module/uyeler/stores/customerStore'
import { useAppUserStore } from '@/module/kullanicilar/stores/appUserStore'
export const useUsersStore = defineStore('usersStore', () => {
const route = useRoute()
const customerStore = useCustomerStore()
const appUserStore = useAppUserStore()
const userStorageKeys = reactive<Record<string, any>>({
USER: 'username',
TOKEN: 'token',
IS_AUTH: 'is_auth',
ROLES: 'roles',
ID: 'id',
STATUS: 'status',
POSITION: 'position',
DEPARTMENT: 'department'
})
const userId = ref<number>(0)
const userApproveId = ref<number | null>(null)
const userSubApproveId = ref<number | null>(null)
const userName = ref<string>('')
const userMail = ref<string>('')
const userIsAuth = ref<boolean>(false)
const userRoles = ref<string[]>([])
const userStatus = ref<number | null>(null)
const userPosition = ref<number | null>(null)
const userDepartment = ref<number | null>(null)
const profilePhoto = ref<string>('')
const SetSelectedUser = () => {
if (route.name === 'UyeYetkiliDetay') {
customerStore.selectedCustomer = Number(route.params.uyeId)
customerStore.selectedSubCustomer = Number(route.params.altUyeId)
} else if (route.name === 'UyeDetay')
customerStore.selectedCustomer = Number(route.params.uyeId)
else if (route.name === 'Profil') {
if (isAdmin.value) appUserStore.selectedAppUser = userId.value
else customerStore.selectedCustomer = userId.value
}
}
const selectedUserId = ():number => {
var id: number = Number(userId.value)
if (route.name === 'UyeYetkiliDetay') {
id = Number(route.params.altUyeId)
} else if (route.name === 'UyeDetay') {
id = Number(route.params.uyeId)
} else if (route.name === 'Profil') {
id = Number(userId.value)
}
return id
}
const selectedUserApproveId = computed<number | null>(() => {
var id: number | null = null
if (route.name === 'UyeYetkiliDetay') {
id = userSubApproveId.value
} else if (route.name === 'UyeDetay' || route.name === 'Profil') {
id = userApproveId.value
}
return id
})
const SetUserSessionData = (data: Record<string, any>) => {
sessionStorage.setItem(userStorageKeys.TOKEN, data.token)
sessionStorage.setItem(userStorageKeys.USER, data.username)
sessionStorage.setItem(userStorageKeys.IS_AUTH, JSON.stringify(true))
sessionStorage.setItem(userStorageKeys.ROLES, JSON.stringify(data.roles))
sessionStorage.setItem(userStorageKeys.ID, JSON.stringify(data.id))
sessionStorage.setItem(userStorageKeys.STATUS, JSON.stringify(data.islemtipi))
sessionStorage.setItem(userStorageKeys.POSITION, JSON.stringify(data.gorevId))
sessionStorage.setItem(userStorageKeys.DEPARTMENT, JSON.stringify(data.birimId))
}
const RemoveUserSessionData = () => {
sessionStorage.removeItem(userStorageKeys.TOKEN)
sessionStorage.removeItem(userStorageKeys.USER)
sessionStorage.removeItem(userStorageKeys.IS_AUTH)
sessionStorage.removeItem(userStorageKeys.ROLES)
sessionStorage.removeItem(userStorageKeys.ID)
sessionStorage.removeItem(userStorageKeys.STATUS)
sessionStorage.removeItem(userStorageKeys.POSITION)
sessionStorage.removeItem(userStorageKeys.DEPARTMENT)
}
const SetUserData = () => {
let token = sessionStorage.getItem(userStorageKeys.TOKEN)
if (token) {
userId.value = Number(sessionStorage.getItem(userStorageKeys.ID)) as number
userName.value = sessionStorage.getItem(userStorageKeys.USER) as string
userIsAuth.value =
sessionStorage.getItem(userStorageKeys.IS_AUTH) === 'true' || true ? true : false
userRoles.value = JSON.parse(
sessionStorage.getItem(userStorageKeys.ROLES) as string
) as string[]
userStatus.value = Number(sessionStorage.getItem(userStorageKeys.STATUS))
if (sessionStorage.getItem(userStorageKeys.POSITION) !== undefined)
userPosition.value = Number(sessionStorage.getItem(userStorageKeys.POSITION))
if (sessionStorage.getItem(userStorageKeys.DEPARTMENT) !== undefined)
userDepartment.value = Number(sessionStorage.getItem(userStorageKeys.DEPARTMENT))
if (isPanelUser.value) {
userMail.value = sessionStorage.getItem(userStorageKeys.USER) as string
}
}
}
const isAdmin = computed<boolean>(() => {
return userRoles.value.includes('admin')
})
const isSuperAdmin = computed<boolean>(() => {
return userRoles.value.includes('superadmin')
})
const isAccounting = computed<boolean>(() => {
return userDepartment.value === 6 || userPosition.value === 5
})
const isPanelUser = computed<boolean>(() => {
return isAdmin.value || isSuperAdmin.value
})
const isAraciFirma = computed<boolean>(() => {
return userRoles.value.includes('AraciFirma')
})
const isGercekKisi = computed<boolean>(() => {
return userRoles.value.includes('gercekkisi')
})
const isTuzelKisi = computed<boolean>(() => {
return userRoles.value.includes('tuzelkisi')
})
const isVakifDernek = computed<boolean>(() => {
return userRoles.value.includes('vakifdernek')
})
const ResetUserData = () => {
RemoveUserSessionData()
userId.value = 0
userApproveId.value = null
userSubApproveId.value = null
userName.value = ''
userMail.value = ''
userIsAuth.value = false
userRoles.value = []
userStatus.value = null
profilePhoto.value = ''
}
return {
userStorageKeys,
userId,
userName,
userMail,
userIsAuth,
userRoles,
userStatus,
userPosition,
userApproveId,
userSubApproveId,
selectedUserApproveId,
profilePhoto,
selectedUserId,
isAdmin,
isSuperAdmin,
isPanelUser,
isAccounting,
isAraciFirma,
isGercekKisi,
isTuzelKisi,
isVakifDernek,
SetSelectedUser,
SetUserSessionData,
RemoveUserSessionData,
SetUserData,
ResetUserData
}
})

View File

@ -0,0 +1,142 @@
import { defineStore } from 'pinia'
import { reactive } from 'vue'
export const useValidationStore = defineStore('validationStore', () => {
const panelInvalidText = reactive<Record<string, any>>({})
const pageInvalidText = reactive<Record<string, any>>({})
const onlyDel = (e: KeyboardEvent): boolean => {
return e.key !== 'Backspace' && e.key !== 'Delete'
}
const onlyTab = (e: KeyboardEvent): boolean => {
return e.key !== 'Tab'
}
const onlyArrows = (e: KeyboardEvent): boolean => {
return e.key !== 'ArrowLeft' && e.key !== 'ArrowRight'
}
const onlyNumbers = (e: KeyboardEvent): boolean => {
return isNaN(Number(e.key))
}
const onlySpace = (e: KeyboardEvent): boolean => {
return e.code === 'Space' || e.key === ' '
}
const onlyCopyPaste = (e: KeyboardEvent): boolean => {
return (
(e.ctrlKey && e.key === 'c') ||
(e.ctrlKey && e.key === 'C') ||
(e.ctrlKey && e.key === 'v') ||
(e.ctrlKey && e.key === 'V')
)
}
const onlyLetters = (e: KeyboardEvent): boolean => {
return /[a-zA-Z\p{L}]/u.test(e.key)
}
const allowNumbers = (e: KeyboardEvent) => {
if ((onlyNumbers(e) && onlyTab(e)) || onlySpace(e)) e.preventDefault()
}
const checkOnlyNumber = (s: string): boolean => {
return /^\d+$/.test(s)
}
const checkEmail = (s: string): boolean => {
return /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(
s
)
}
const checkEmpty = (s: any): boolean => {
return s === '' || s === undefined || s === null
}
const checkMinLength = (s: string, min: number): boolean => {
return s.length < min
}
const allowNumbersWithKeys = (e: KeyboardEvent) => {
if (
(onlyNumbers(e) &&
!onlyCopyPaste(e) &&
onlyDel(e) &&
onlyArrows(e) &&
onlyTab(e)) ||
onlySpace(e)
)
e.preventDefault()
}
const allowPrice = (e: KeyboardEvent) => {
if (
(onlyNumbers(e) &&
!onlyCopyPaste(e) &&
onlyDel(e) &&
onlyArrows(e) &&
onlyTab(e) &&
!/,/.test(e.key)) ||
onlySpace(e)
)
e.preventDefault()
}
const allowNumbersWithKeysExtra = (e: KeyboardEvent, reg: RegExp) => {
if (
onlyNumbers(e) &&
!onlyCopyPaste(e) &&
onlyDel(e) &&
onlyArrows(e) &&
onlyTab(e) &&
!reg.test(e.key)
)
e.preventDefault()
}
const allowLettersWithKeys = (e: KeyboardEvent) => {
if (
(!onlyLetters(e) &&
!onlyCopyPaste(e) &&
onlyDel(e) &&
onlyArrows(e) &&
onlyTab(e)) ||
onlySpace(e)
)
e.preventDefault()
}
const allowLettersWithKeysExtra = (e: KeyboardEvent, reg: RegExp) => {
if (
!onlyLetters(e) &&
!onlyCopyPaste(e) &&
onlyDel(e) &&
onlyArrows(e) &&
onlyTab(e) &&
!reg.test(e.key)
)
e.preventDefault()
}
const IsFieldEmpty = (
formData: Record<string, any>,
validData: Record<string, any>,
field: string,
text: string
) => {
if (checkEmpty(formData[field])) {
validData[field] = text
} else {
delete validData[field]
}
}
return {
panelInvalidText,
pageInvalidText,
onlyDel,
onlyTab,
onlyArrows,
onlyNumbers,
onlySpace,
onlyCopyPaste,
onlyLetters,
allowNumbers,
checkOnlyNumber,
checkEmail,
checkEmpty,
checkMinLength,
allowNumbersWithKeys,
allowPrice,
allowNumbersWithKeysExtra,
allowLettersWithKeys,
allowLettersWithKeysExtra,
IsFieldEmpty
}
})