diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8ee54e8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..fdc362d --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,10 @@ +{ + "bracketSameLine": true, + "semi": false, + "vueIndentScriptAndStyle": true, + "htmlWhitespaceSensitivity": "ignore", + "printWidth": 90, + "jsxSingleQuote": true, + "singleQuote": true, + "trailingComma" : "none" +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..a7cea0b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..8d442c6 --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ +# panel-vue + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). + +## Type Support for `.vue` Imports in TS + +TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types. + +## Customize configuration + +See [Vite Configuration Reference](https://vitejs.dev/config/). + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Type-Check, Compile and Minify for Production + +```sh +npm run build +``` diff --git a/VueJsPanel.rar b/VueJsPanel.rar new file mode 100644 index 0000000..6e3c6aa Binary files /dev/null and b/VueJsPanel.rar differ diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..ed77210 --- /dev/null +++ b/env.d.ts @@ -0,0 +1,2 @@ +/// + diff --git a/index.html b/index.html new file mode 100644 index 0000000..1ed960d --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + + MPİ KNOP Panel + + + + + diff --git a/public/data/ornek-katilimci-listesi.xlsx b/public/data/ornek-katilimci-listesi.xlsx new file mode 100644 index 0000000..2e911d8 Binary files /dev/null and b/public/data/ornek-katilimci-listesi.xlsx differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/mpi-fav.png b/public/mpi-fav.png new file mode 100644 index 0000000..07c15c7 Binary files /dev/null and b/public/mpi-fav.png differ diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..34cc070 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/assets/data/ilcelist.json b/src/assets/data/ilcelist.json new file mode 100644 index 0000000..0cefd3a --- /dev/null +++ b/src/assets/data/ilcelist.json @@ -0,0 +1,1378 @@ +{ + "Adana": { + "plaka": "01", + "ilce": [ + "ALADAĞ", + "CEYHAN", + "ÇUKUROVA", + "FEKE", + "İMAMOĞLU", + "KARAİSALI", + "KARATAŞ", + "KOZAN", + "POZANTI", + "SAİMBEYLİ", + "SARIÇAM", + "SEYHAN", + "TUFANBEYLİ", + "YUMURTALIK", + "YÜREĞİR" + ] + }, + "Adıyaman": { + "plaka": "02", + "ilce": [ + "BESNİ", + "ÇELİKHAN", + "GERGER", + "GÖLBAŞI", + "KAHTA", + "MERKEZ", + "SAMSAT", + "SİNCİK", + "TUT" + ] + }, + "Afyonkarahisar": { + "plaka": "03", + "ilce": [ + "BAŞMAKÇI", + "BAYAT", + "BOLVADİN", + "ÇAY", + "ÇOBANLAR", + "DAZKIRI", + "DİNAR", + "EMİRDAĞ", + "EVCİLER", + "HOCALAR", + "İHSANİYE", + "İSCEHİSAR", + "KIZILÖREN", + "MERKEZ", + "SANDIKLI", + "SİNANPAŞA", + "SULTANDAĞI", + "ŞUHUT" + ] + }, + "Ağrı": { + "plaka": "04", + "ilce": [ + "DİYADİN", + "DOĞUBAYAZIT", + "ELEŞKİRT", + "HAMUR", + "MERKEZ", + "PATNOS", + "TAŞLIÇAY", + "TUTA" + ] + }, + "Aksaray": { + "plaka": "68", + "ilce": [ + "AĞAÇÖREN", + "ESKİL", + "GÜLAĞAÇ", + "GÜZELYURT", + "MERKEZ", + "ORTAKÖY", + "SARIYAHŞİ" + ] + }, + "Amasya": { + "plaka": "05", + "ilce": [ + "GÖYNÜCEK", + "GÜMÜŞHACIKÖY", + "HAMAMÖZÜ", + "MERKEZ", + "MERZİFON", + "SULUOVA", + "TAŞOVA" + ] + }, + "Ankara": { + "plaka": "06", + "ilce": [ + "AKYURT", + "ALTINDAĞ", + "AYAŞ", + "BALA", + "BEYPAZARI", + "ÇAMLIDERE", + "ÇANKAYA", + "ÇUBUK", + "ELMADAĞ", + "ETİMESGUT", + "EVREN", + "GÖLBAŞI", + "GÜDÜL", + "HAYMANA", + "KALECİK", + "KAZAN", + "KEÇİÖREN", + "KIZILCAHAMAM", + "MAMAK", + "NALLIHAN", + "POLATLI", + "PURSAKLAR", + "SİNCAN", + "ŞEREFLİKOÇHİSAR", + "YENİMAHALLE" + ] + }, + "Antalya": { + "plaka": "07", + "ilce": [ + "AKSEKİ", + "AKSU", + "ALANYA", + "DEMRE", + "DÖŞEMEALTI", + "ELMALI", + "FİNİKE", + "GAZİPAŞA", + "GÜNDOĞMUŞ", + "İBRADI", + "KAŞ", + "KEMER", + "KEPEZ", + "KONYAALTI", + "KORKUTELİ", + "KUMLUCA", + "MANAVGAT", + "MURATPAŞA", + "SERİK" + ] + }, + "Ardahan": { + "plaka": "75", + "ilce": [ + "ÇILDIR", + "DAMAL", + "GÖLE", + "HANAK", + "MERKEZ", + "POSOF" + ] + }, + "Artvin": { + "plaka": "08", + "ilce": [ + "ARDANUÇ", + "ARHAVİ", + "BORÇKA", + "HOPA", + "MERKEZ", + "MURGUL", + "ŞAVŞAT", + "YUSUFELİ" + ] + }, + "Aydın": { + "plaka": "09", + "ilce": [ + "BOZDOĞAN", + "BUHARKENT", + "ÇİNE", + "DİDİM", + "EFELER", + "GERMENCİK", + "İNCİRLİOVA", + "KARACASU", + "KARPUZLU", + "KOÇARLI", + "KÖŞK", + "KUŞADASI", + "KUYUCAK", + "NAZİLLİ", + "SÖKE", + "SULTANHİSAR", + "YENİPAZAR" + ] + }, + "Balıkesir": { + "plaka": "10", + "ilce": [ + "ALTIEYLÜL", + "AYVALIK", + "BALYA", + "BANDIRMA", + "BİGADİÇ", + "BURHANİYE", + "DURSUNBEY", + "EDREMİT", + "ERDEK", + "GÖMEÇ", + "GÖNEN", + "HAVRAN", + "İVRİNDİ", + "KARESİ", + "KEPSUT", + "MANYAS", + "MARMARA", + "SAVAŞTEPE", + "SINDIRGI", + "SUSURLUK" + ] + }, + "Bartın": { + "plaka": "74", + "ilce": [ + "AMASRA", + "KURUCAŞİLE", + "MERKEZ", + "ULUS" + ] + }, + "Batman": { + "plaka": "72", + "ilce": [ + "BEŞİRİ", + "GERCÜŞ", + "HASANKEYF", + "KOZLUK", + "MERKEZ", + "SASON" + ] + }, + "Bayburt": { + "plaka": "69", + "ilce": [ + "AYDINTEPE", + "DEMİRÖZÜ", + "MERKEZ" + ] + }, + "Bilecik": { + "plaka": "11", + "ilce": [ + "BOZÜYÜK", + "GÖLPAZARI", + "İNHİSAR", + "MERKEZ", + "OSMANELİ", + "PAZARYERİ", + "SÖĞÜT", + "YENİPAZAR" + ] + }, + "Bingöl": { + "plaka": "12", + "ilce": [ + "ADAKLI", + "GENÇ", + "KARLIOVA", + "KİĞI", + "MERKEZ", + "SOLHAN", + "YAYLADERE", + "YEDİSU" + ] + }, + "Bitlis": { + "plaka": "13", + "ilce": [ + "ADİLCEVAZ", + "AHLAT", + "GÜROYMAK", + "HİZAN", + "MERKEZ", + "MUTKİ", + "TATVAN" + ] + }, + "Bolu": { + "plaka": "14", + "ilce": [ + "DÖRTDİVAN", + "GEREDE", + "GÖYNÜK", + "KIBRISCIK", + "MENGEN", + "MERKEZ", + "MUDURNU", + "SEBEN", + "YENİÇAĞA" + ] + }, + "Burdur": { + "plaka": "15", + "ilce": [ + "AĞLASUN", + "ALTINYAYLA", + "BUCAK", + "ÇAVDIR", + "ÇELTİKÇİ", + "GÖLHİSAR", + "KARAMANLI", + "KEMER", + "MERKEZ", + "TEFENNİ", + "YEŞİLOVA" + ] + }, + "Bursa": { + "plaka": "16", + "ilce": [ + "BÜYÜKORHAN", + "GEMLİK", + "GÜRSU", + "HARMANCIK", + "İNEGÖL", + "İZNİK", + "KARACABEY", + "KELES", + "KESTEL", + "MUDANYA", + "MUSTAFAKEMALPAŞA", + "NİLÜFER", + "ORHANELİ", + "ORHANGAZİ", + "OSMANGAZİ", + "YENİŞEHİR", + "YILDIRIM" + ] + }, + "Çanakkale": { + "plaka": "17", + "ilce": [ + "AYVACIK", + "BAYRAMİÇ", + "BİGA", + "BOZCAADA", + "ÇAN", + "ECEABAT", + "EZİNE", + "GELİBOLU", + "GÖKÇEADA", + "LAPSEKİ", + "MERKEZ", + "YENİCE" + ] + }, + "Çankırı": { + "plaka": "18", + "ilce": [ + "ATKARACALAR", + "BAYRAMÖREN", + "ÇERKEŞ", + "ELDİVAN", + "ILGAZ", + "KIZILIRMAK", + "KORGUN", + "KURŞUNLU", + "MERKEZ", + "ORTA", + "ŞABANÖZÜ", + "YAPRAKLI" + ] + }, + "Çorum": { + "plaka": "19", + "ilce": [ + "ALACA", + "BAYAT", + "BOĞAZKALE", + "DODURGA", + "İSKİLİP", + "KARGI", + "LAÇİN", + "MECİTÖZÜ", + "MERKEZ", + "OĞUZLAR", + "ORTAKÖY", + "OSMANCIK", + "SUNGURLU", + "UĞURLUDAĞ" + ] + }, + "Denizli": { + "plaka": "20", + "ilce": [ + "ACIPAYAM", + "BABADAĞ", + "BAKLAN", + "BEKİLLİ", + "BEYAĞAÇ", + "BOZKURT", + "BULDAN", + "ÇAL", + "ÇAMELİ", + "ÇARDAK", + "ÇİVRİL", + "GÜNEY", + "HONAZ", + "KALE", + "MERKEZEFENDİ", + "PAMUKKALE", + "SARAYKÖY", + "SERİNHİSAR", + "TAVAS" + ] + }, + "Diyarbakır": { + "plaka": "21", + "ilce": [ + "BAĞLAR", + "BİSMİL", + "ÇERMİK", + "ÇINAR", + "ÇÜNGÜŞ", + "DİCLE", + "EĞİL", + "ERGANİ", + "HANİ", + "HAZRO", + "KAYAPINAR", + "KOCAKÖY", + "KULP", + "LİCE", + "SİLVAN", + "SUR", + "YENİŞEHİR" + ] + }, + "Düzce": { + "plaka": "81", + "ilce": [ + "AKÇAKOCA", + "CUMAYERİ", + "ÇİLİMLİ", + "GÖLYAKA", + "GÜMÜŞOVA", + "KAYNAŞLI", + "MERKEZ", + "YIĞILCA" + ] + }, + "Edirne": { + "plaka": "22", + "ilce": [ + "ENEZ", + "HAVSA", + "İPSALA", + "KEŞAN", + "LALAPAŞA", + "MERİÇ", + "MERKEZ", + "SÜLOĞLU", + "UZUNKÖPRÜ" + ] + }, + "Elazığ": { + "plaka": "23", + "ilce": [ + "AĞIN", + "ALACAKAYA", + "ARICAK", + "BASKİL", + "KARAKOÇAN", + "KEBAN", + "KOVANCILAR", + "MADEN", + "MERKEZ", + "PALU", + "SİVRİCE" + ] + }, + "Erzincan": { + "plaka": "24", + "ilce": [ + "ÇAYIRLI", + "İLİÇ", + "KEMAH", + "KEMALİYE", + "MERKEZ", + "OTLUKBELİ", + "REFAHİYE", + "TERCAN", + "ÜZÜMLÜ" + ] + }, + "Erzurum": { + "plaka": "25", + "ilce": [ + "AŞKALE", + "AZİZİYE", + "ÇAT", + "HINIS", + "HORASAN", + "İSPİR", + "KARAÇOBAN", + "KARAYAZI", + "KÖPRÜKÖY", + "NARMAN", + "OLTU", + "OLUR", + "PALANDÖKEN", + "PASİNLER", + "PAZARYOLU", + "ŞENKAYA", + "TEKMAN", + "TORTUM", + "UZUNDERE", + "YAKUTİYE" + ] + }, + "Eskişehir": { + "plaka": "26", + "ilce": [ + "ALPU", + "BEYLİKOVA", + "ÇİFTELER", + "GÜNYÜZÜ", + "HAN", + "İNÖNÜ", + "MAHMUDİYE", + "MİHALGAZİ", + "MİHALIÇÇIK", + "ODUNPAZARI", + "SARICAKAYA", + "SEYİTGAZİ", + "SİVRİHİSAR", + "TEPEBAŞI" + ] + }, + "Gaziantep": { + "plaka": "27", + "ilce": [ + "ARABAN", + "İSLAHİYE", + "KARKAMIŞ", + "NİZİP", + "NURDAĞI", + "OĞUZELİ", + "ŞAHİNBEY", + "ŞEHİTKAMİL", + "YAVUZELİ" + ] + }, + "Giresun": { + "plaka": "28", + "ilce": [ + "ALUCRA", + "BULANCAK", + "ÇAMOLUK", + "ÇANAKÇI", + "DERELİ", + "DOĞANKENT", + "ESPİYE", + "EYNESİL", + "GÖRELE", + "GÜCE", + "KEŞAP", + "MERKEZ", + "PİRAZİZ", + "ŞEBİNKARAHİSAR", + "TİREBOLU", + "YAĞLIDERE" + ] + }, + "Gümüşhane": { + "plaka": "29", + "ilce": [ + "KELKİT", + "KÖSE", + "KÜRTÜN", + "MERKEZ", + "ŞİRAN", + "TORUL" + ] + }, + "Hakkari": { + "plaka": "30", + "ilce": [ + "ÇUKURCA", + "MERKEZ", + "ŞEMDİNLİ", + "YÜKSEKOVA" + ] + }, + "Hatay": { + "plaka": "31", + "ilce": [ + "ALTINÖZÜ", + "ANTAKYA", + "ARSUZ", + "BELEN", + "DEFNE", + "DÖRTYOL", + "ERZİN", + "HASSA", + "İSKENDERUN", + "KIRIKHAN", + "KUMLU", + "PAYAS", + "REYHANLI", + "SAMANDAĞ", + "YAYLADAĞI" + ] + }, + "Iğdır": { + "plaka": "76", + "ilce": [ + "ARALIK", + "KARAKOYUNLU", + "MERKEZ", + "TUZLUCA" + ] + }, + "Isparta": { + "plaka": "32", + "ilce": [ + "AKSU", + "ATABEY", + "EĞİRDİR", + "GELENDOST", + "GÖNEN", + "KEÇİBORLU", + "MERKEZ", + "SENİRKENT", + "SÜTÇÜLER", + "ŞARKİKARAAĞAÇ", + "ULUBORLU", + "YALVAÇ", + "YENİŞARBADEMLİ" + ] + }, + "İstanbul": { + "plaka": "34", + "ilce": [ + "ADALAR", + "ARNAVUTKÖY", + "ATAŞEHİR", + "AVCILAR", + "BAĞCILAR", + "BAHÇELİEVLER", + "BAKIRKÖY", + "BAŞAKŞEHİR", + "BAYRAMPAŞA", + "BEŞİKTAŞ", + "BEYKOZ", + "BEYLİKDÜZÜ", + "BEYOĞLU", + "BÜYÜKÇEKMECE", + "ÇATALCA", + "ÇEKMEKÖY", + "ESENLER", + "ESENYURT", + "EYÜP", + "FATİH", + "GAZİOSMANPAŞA", + "GÜNGÖREN", + "KADIKÖY", + "KAĞITHANE", + "KARTAL", + "KÜÇÜKÇEKMECE", + "MALTEPE", + "PENDİK", + "SANCAKTEPE", + "SARIYER", + "SİLİVRİ", + "SULTANBEYLİ", + "SULTANGAZİ", + "ŞİLE", + "ŞİŞLİ", + "TUZLA", + "ÜMRANİYE", + "ÜSKÜDAR", + "ZEYTİNBURNU" + ] + }, + "İzmir": { + "plaka": "35", + "ilce": [ + "ALİAĞA", + "BALÇOVA", + "BAYINDIR", + "BAYRAKLI", + "BERGAMA", + "BEYDAĞ", + "BORNOVA", + "BUCA", + "ÇEŞME", + "ÇİĞLİ", + "DİKİLİ", + "FOÇA", + "GAZİEMİR", + "GÜZELBAHÇE", + "KARABAĞLAR", + "KARABURUN", + "KARŞIYAKA", + "KEMALPAŞA", + "KINIK", + "KİRAZ", + "KONAK", + "MENDERES", + "MENEMEN", + "NARLIDERE", + "ÖDEMİŞ", + "SEFERİHİSAR", + "SELÇUK", + "TİRE", + "TORBALI", + "URLA" + ] + }, + "Kahramanmaraş": { + "plaka": "46", + "ilce": [ + "AFŞİN", + "ANDIRIN", + "ÇAĞLAYANCERİT", + "DULKADİROĞLU", + "EKİNÖZÜ", + "ELBİSTAN", + "GÖKSUN", + "NURHAK", + "ONİKİŞUBAT", + "PAZARCIK", + "TÜRKOĞLU" + ] + }, + "Karabük": { + "plaka": "78", + "ilce": [ + "EFLANİ", + "ESKİPAZAR", + "MERKEZ", + "OVACIK", + "SAFRANBOLU", + "YENİCE" + ] + }, + "Karaman": { + "plaka": "70", + "ilce": [ + "AYRANCI", + "BAŞYAYLA", + "ERMENEK", + "KAZIMKARABEKİR", + "MERKEZ", + "SARIVELİLER" + ] + }, + "Kars": { + "plaka": "36", + "ilce": [ + "AKYAKA", + "ARPAÇAY", + "DİGOR", + "KAĞIZMAN", + "MERKEZ", + "SARIKAMIŞ", + "SELİM", + "SUSUZ" + ] + }, + "Kastamonu": { + "plaka": "37", + "ilce": [ + "ABANA", + "AĞLI", + "ARAÇ", + "AZDAVAY", + "BOZKURT", + "CİDE", + "ÇATALZEYTİN", + "DADAY", + "DEVREKANİ", + "DOĞANYURT", + "HANÖNÜ", + "İHSANGAZİ", + "İNEBOLU", + "KÜRE", + "MERKEZ", + "PINARBAŞI", + "SEYDİLER", + "ŞENPAZAR", + "TAŞKÖPRÜ", + "TOSYA" + ] + }, + "Kayseri": { + "plaka": "38", + "ilce": [ + "AKKIŞLA", + "BÜNYAN", + "DEVELİ", + "FELAHİYE", + "HACILAR", + "İNCESU", + "KOCASİNAN", + "MELİKGAZİ", + "ÖZVATAN", + "PINARBAŞI", + "SARIOĞLAN", + "SARIZ", + "TALAS", + "TOMARZA", + "YAHYALI", + "YEŞİLHİSAR" + ] + }, + "Kırıkkale": { + "plaka": "71", + "ilce": [ + "BAHŞİLİ", + "BALIŞEYH", + "ÇELEBİ", + "DELİCE", + "KARAKEÇİLİ", + "KESKİN", + "MERKEZ", + "SULAKYURT", + "YAHŞİHAN" + ] + }, + "Kırklareli": { + "plaka": "39", + "ilce": [ + "BABAESKİ", + "DEMİRKÖY", + "KOFÇAZ", + "LÜLEBURGAZ", + "MERKEZ", + "PEHLİVANKÖY", + "PINARHİSAR", + "VİZE" + ] + }, + "Kırşehir": { + "plaka": "40", + "ilce": [ + "AKÇAKENT", + "AKPINAR", + "BOZTEPE", + "ÇİÇEKDAĞI", + "KAMAN", + "MERKEZ", + "MUCUR" + ] + }, + "Kilis": { + "plaka": "79", + "ilce": [ + "ELBEYLİ", + "MERKEZ", + "MUSABEYLİ", + "POLATELİ" + ] + }, + "Kocaeli": { + "plaka": "41", + "ilce": [ + "BAŞİSKELE", + "ÇAYIROVA", + "DARICA", + "DERİNCE", + "DİLOVASI", + "GEBZE", + "GÖLCÜK", + "İZMİT", + "KANDIRA", + "KARAMÜRSEL", + "KARTEPE", + "KÖRFEZ" + ] + }, + "Konya": { + "plaka": "42", + "ilce": [ + "AHIRLI", + "AKÖREN", + "AKŞEHİR", + "ALTINEKİN", + "BEYŞEHİR", + "BOZKIR", + "CİHANBEYLİ", + "ÇELTİK", + "ÇUMRA", + "DERBENT", + "DEREBUCAK", + "DOĞANHİSAR", + "EMİRGAZİ", + "EREĞLİ", + "GÜNEYSINIR", + "HADİM", + "HALKAPINAR", + "HÜYÜK", + "ILGIN", + "KADINHANI", + "KARAPINAR", + "KARATAY", + "KULU", + "MERAM", + "SARAYÖNÜ", + "SELÇUKLU", + "SEYDİŞEHİR", + "TAŞKENT", + "TUZLUKÇU", + "YALIHÜYÜK", + "YUNAK" + ] + }, + "Kütahya": { + "plaka": "43", + "ilce": [ + "ALTINTAŞ", + "ASLANAPA", + "ÇAVDARHİSAR", + "DOMANİÇ", + "DUMLUPINAR", + "EMET", + "GEDİZ", + "HİSARCIK", + "MERKEZ", + "PAZARLAR", + "SİMAV", + "ŞAPHANE", + "TAVŞANLI" + ] + }, + "Malatya": { + "plaka": "44", + "ilce": [ + "AKÇADAĞ", + "ARAPGİR", + "ARGUVAN", + "BATTALGAZİ", + "DARENDE", + "DOĞANŞEHİR", + "DOĞANYOL", + "HEKİMHAN", + "KALE", + "KULUNCAK", + "PÜTÜRGE", + "YAZIHAN", + "YEŞİLYURT" + ] + }, + "Manisa": { + "plaka": "45", + "ilce": [ + "AHMETLİ", + "AKHİSAR", + "ALAŞEHİR", + "DEMİRCİ", + "GÖLMARMARA", + "GÖRDES", + "KIRKAĞAÇ", + "KÖPRÜBAŞI", + "KULA", + "SALİHLİ", + "SARIGÖL", + "SARUHANLI", + "SELENDİ", + "SOMA", + "ŞEHZADELER", + "TURGUTLU", + "YUNUSEMRE" + ] + }, + "Mardin": { + "plaka": "47", + "nufus_yuzdesi_genel": "1,01%", + "ilce": [ + "ARTUKLU", + "DARGEÇİT", + "DERİK", + "KIZILTEPE", + "MAZIDAĞI", + "MİDYAT", + "NUSAYBİN", + "ÖMERLİ", + "SAVUR", + "YEŞİLLİ" + ] + }, + "Mersin": { + "plaka": "33", + "ilce": [ + "AKDENİZ", + "ANAMUR", + "AYDINCIK", + "BOZYAZI", + "ÇAMLIYAYLA", + "ERDEMLİ", + "GÜLNAR", + "MEZİTLİ", + "MUT", + "SİLİFKE", + "TARSUS", + "TOROSLAR", + "YENİŞEHİR" + ] + }, + "Muğla": { + "plaka": "48", + "ilce": [ + "BODRUM", + "DALAMAN", + "DATÇA", + "FETHİYE", + "KAVAKLIDERE", + "KÖYCEĞİZ", + "MARMARİS", + "MENTEŞE", + "MİLAS", + "ORTACA", + "SEYDİKEMER", + "ULA", + "YATAĞAN" + ] + }, + "Muş": { + "plaka": "49", + "ilce": [ + "BULANIK", + "HASKÖY", + "KORKUT", + "MALAZGİRT", + "MERKEZ", + "VARTO" + ] + }, + "Nevşehir": { + "plaka": "50", + "ilce": [ + "ACIGÖL", + "AVANOS", + "DERİNKUYU", + "GÜLŞEHİR", + "HACIBEKTAŞ", + "KOZAKLI", + "MERKEZ", + "ÜRGÜP" + ] + }, + "Niğde": { + "plaka": "51", + "ilce": [ + "ALTUNHİSAR", + "BOR", + "ÇAMARDI", + "ÇİFTLİK", + "MERKEZ", + "ULUKIŞLA" + ] + }, + "Ordu": { + "plaka": "52", + "ilce": [ + "AKKUŞ", + "ALTINORDU", + "AYBASTI", + "ÇAMAŞ", + "ÇATALPINAR", + "ÇAYBAŞI", + "FATSA", + "GÖLKÖY", + "GÜLYALI", + "GÜRGENTEPE", + "İKİZCE", + "KABADÜZ", + "KABATAŞ", + "KORGAN", + "KUMRU", + "MESUDİYE", + "PERŞEMBE", + "ULUBEY", + "ÜNYE" + ] + }, + "Osmaniye": { + "plaka": "80", + "ilce": [ + "BAHÇE", + "DÜZİÇİ", + "HASANBEYLİ", + "KADİRLİ", + "MERKEZ", + "SUMBAS", + "TOPRAKKALE" + ] + }, + "Rize": { + "plaka": "53", + "ilce": [ + "ARDEŞEN", + "ÇAMLIHEMŞİN", + "ÇAYELİ", + "DEREPAZARI", + "FINDIKLI", + "GÜNEYSU", + "HEMŞİN", + "İKİZDERE", + "İYİDERE", + "KALKANDERE", + "MERKEZ", + "PAZAR" + ] + }, + "Sakarya": { + "plaka": "54", + "ilce": [ + "ADAPAZARI", + "AKYAZI", + "ARİFİYE", + "ERENLER", + "FERİZLİ", + "GEYVE", + "HENDEK", + "KARAPÜRÇEK", + "KARASU", + "KAYNARCA", + "KOCAALİ", + "PAMUKOVA", + "SAPANCA", + "SERDİVAN", + "SÖĞÜTLÜ", + "TARAKLI" + ] + }, + "Samsun": { + "plaka": "55", + "ilce": [ + "ALAÇAM", + "ASARCIK", + "ATAKUM", + "AYVACIK", + "BAFRA", + "CANİK", + "ÇARŞAMBA", + "HAVZA", + "İLKADIM", + "KAVAK", + "LADİK", + "ONDOKUZMAYIS", + "SALIPAZARI", + "TEKKEKÖY", + "TERME", + "VEZİRKÖPRÜ", + "YAKAKENT" + ] + }, + "Siirt": { + "plaka": "56", + "ilce": [ + "AYDINLAR", + "BAYKAN", + "ERUH", + "KURTALAN", + "MERKEZ", + "PERVARİ", + "ŞİRVAN" + ] + }, + "Sinop": { + "plaka": "57", + "ilce": [ + "AYANCIK", + "BOYABAT", + "DİKMEN", + "DURAĞAN", + "ERFELEK", + "GERZE", + "MERKEZ", + "SARAYDÜZÜ", + "TÜRKELİ" + ] + }, + "Sivas": { + "plaka": "58", + "ilce": [ + "AKINCILAR", + "ALTINYAYLA", + "DİVRİĞİ", + "DOĞANŞAR", + "GEMEREK", + "GÖLOVA", + "GÜRÜN", + "HAFİK", + "İMRANLI", + "KANGAL", + "KOYULHİSAR", + "MERKEZ", + "SUŞEHRİ", + "ŞARKIŞLA", + "ULAŞ", + "YILDIZELİ", + "ZARA" + ] + }, + "Şanlıurfa": { + "plaka": "63", + "ilce": [ + "AKÇAKALE", + "BİRECİK", + "BOZOVA", + "CEYLANPINAR", + "EYYÜBİYE", + "HALFETİ", + "HALİLİYE", + "HARRAN", + "HİLVAN", + "KARAKÖPRÜ", + "SİVEREK", + "SURUÇ", + "VİRANŞEHİR" + ] + }, + "Şırnak": { + "plaka": "73", + "ilce": [ + "BEYTÜŞŞEBAP", + "CİZRE", + "GÜÇLÜKONAK", + "İDİL", + "MERKEZ", + "SİLOPİ", + "ULUDERE" + ] + }, + "Tekirdağ": { + "plaka": "59", + "ilce": [ + "ÇERKEZKÖY", + "ÇORLU", + "ERGENE", + "HAYRABOLU", + "KAPAKLI", + "MALKARA", + "MARMARAEREĞLİSİ", + "MURATLI", + "SARAY", + "SÜLEYMANPAŞA", + "ŞARKÖY" + ] + }, + "Tokat": { + "plaka": "60", + "ilce": [ + "ALMUS", + "ARTOVA", + "BAŞÇİFTLİK", + "ERBAA", + "MERKEZ", + "NİKSAR", + "PAZAR", + "REŞADİYE", + "SULUSARAY", + "TURHAL", + "YEŞİLYURT", + "ZİLE" + ] + }, + "Trabzon": { + "plaka": "61", + "ilce": [ + "AKÇAABAT", + "ARAKLI", + "ARSİN", + "BEŞİKDÜZÜ", + "ÇARŞIBAŞI", + "ÇAYKARA", + "DERNEKPAZARI", + "DÜZKÖY", + "HAYRAT", + "KÖPRÜBAŞI", + "MAÇKA", + "OF", + "ORTAHİSAR", + "SÜRMENE", + "ŞALPAZARI", + "TONYA", + "VAKFIKEBİR", + "YOMRA" + ] + }, + "Tunceli": { + "plaka": "62", + "ilce": [ + "ÇEMİŞGEZEK", + "HOZAT", + "MAZGİRT", + "MERKEZ", + "NAZIMİYE", + "OVACIK", + "PERTEK", + "PÜLÜMÜR" + ] + }, + "Uşak": { + "plaka": "64", + "ilce": [ + "BANAZ", + "EŞME", + "KARAHALLI", + "MERKEZ", + "SİVASLI", + "ULUBEY" + ] + }, + "Van": { + "plaka": "65", + "ilce": [ + "BAHÇESARAY", + "BAŞKALE", + "ÇALDIRAN", + "ÇATAK", + "EDREMİT", + "ERCİŞ", + "GEVAŞ", + "GÜRPINAR", + "İPEKYOLU", + "MURADİYE", + "ÖZALP", + "SARAY", + "TUŞBA" + ] + }, + "Yalova": { + "plaka": "77", + "ilce": [ + "ALTINOVA", + "ARMUTLU", + "ÇINARCIK", + "ÇİFTLİKKÖY", + "MERKEZ", + "TERMAL" + ] + }, + "Yozgat": { + "plaka": "66", + "ilce": [ + "AKDAĞMADENİ", + "AYDINCIK", + "BOĞAZLIYAN", + "ÇANDIR", + "ÇAYIRALAN", + "ÇEKEREK", + "KADIŞEHRİ", + "MERKEZ", + "SARAYKENT", + "SARIKAYA", + "SORGUN", + "ŞEFAATLİ", + "YENİFAKILI", + "YERKÖY" + ] + }, + "Zonguldak": { + "plaka": "67", + "ilce": [ + "ALAPLI", + "ÇAYCUMA", + "DEVREK", + "EREĞLİ", + "GÖKÇEBEY", + "KİLİMLİ", + "KOZLU", + "MERKEZ" + ] + } +} \ No newline at end of file diff --git a/src/assets/fonts/roboto-400-italic.woff2 b/src/assets/fonts/roboto-400-italic.woff2 new file mode 100644 index 0000000..3d60e74 Binary files /dev/null and b/src/assets/fonts/roboto-400-italic.woff2 differ diff --git a/src/assets/fonts/roboto-400.woff2 b/src/assets/fonts/roboto-400.woff2 new file mode 100644 index 0000000..0aa90fc Binary files /dev/null and b/src/assets/fonts/roboto-400.woff2 differ diff --git a/src/assets/fonts/roboto-500-italic.woff2 b/src/assets/fonts/roboto-500-italic.woff2 new file mode 100644 index 0000000..1cbf304 Binary files /dev/null and b/src/assets/fonts/roboto-500-italic.woff2 differ diff --git a/src/assets/fonts/roboto-500.woff2 b/src/assets/fonts/roboto-500.woff2 new file mode 100644 index 0000000..8b1aebb Binary files /dev/null and b/src/assets/fonts/roboto-500.woff2 differ diff --git a/src/assets/fonts/roboto-700-italic.woff2 b/src/assets/fonts/roboto-700-italic.woff2 new file mode 100644 index 0000000..9a46768 Binary files /dev/null and b/src/assets/fonts/roboto-700-italic.woff2 differ diff --git a/src/assets/fonts/roboto-700.woff2 b/src/assets/fonts/roboto-700.woff2 new file mode 100644 index 0000000..b102004 Binary files /dev/null and b/src/assets/fonts/roboto-700.woff2 differ diff --git a/src/assets/fonts/roboto-900-italic.woff2 b/src/assets/fonts/roboto-900-italic.woff2 new file mode 100644 index 0000000..2ceeea8 Binary files /dev/null and b/src/assets/fonts/roboto-900-italic.woff2 differ diff --git a/src/assets/fonts/roboto-900.woff2 b/src/assets/fonts/roboto-900.woff2 new file mode 100644 index 0000000..beeec68 Binary files /dev/null and b/src/assets/fonts/roboto-900.woff2 differ diff --git a/src/assets/images/arrow.svg b/src/assets/images/arrow.svg new file mode 100644 index 0000000..dd1d6d2 --- /dev/null +++ b/src/assets/images/arrow.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/src/assets/images/empty-user.png b/src/assets/images/empty-user.png new file mode 100644 index 0000000..d097484 Binary files /dev/null and b/src/assets/images/empty-user.png differ diff --git a/src/assets/images/icons.svg b/src/assets/images/icons.svg new file mode 100644 index 0000000..41d43e4 --- /dev/null +++ b/src/assets/images/icons.svg @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/mpi-logos.svg b/src/assets/images/mpi-logos.svg new file mode 100644 index 0000000..1db3606 --- /dev/null +++ b/src/assets/images/mpi-logos.svg @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/src/assets/images/peugeot-3008 1.jpg b/src/assets/images/peugeot-3008 1.jpg new file mode 100644 index 0000000..31bfd17 Binary files /dev/null and b/src/assets/images/peugeot-3008 1.jpg differ diff --git a/src/assets/images/profile-photo.webp b/src/assets/images/profile-photo.webp new file mode 100644 index 0000000..05a378e Binary files /dev/null and b/src/assets/images/profile-photo.webp differ diff --git a/src/assets/js/axios.min.js b/src/assets/js/axios.min.js new file mode 100644 index 0000000..8da3e5f --- /dev/null +++ b/src/assets/js/axios.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,(function(){"use strict";function e(e){var r,n;function o(r,n){try{var a=e[r](n),s=a.value,u=s instanceof t;Promise.resolve(u?s.v:s).then((function(t){if(u){var n="return"===r?"return":"next";if(!s.k||t.done)return o(n,t);t=e[n](t).value}i(a.done?"return":"normal",t)}),(function(e){o("throw",e)}))}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":r.resolve({value:t,done:!0});break;case"throw":r.reject(t);break;default:r.resolve({value:t,done:!1})}(r=r.next)?o(r.key,r.arg):n=null}this._invoke=function(e,t){return new Promise((function(i,a){var s={key:e,arg:t,resolve:i,reject:a,next:null};n?n=n.next=s:(r=n=s,o(e,t))}))},"function"!=typeof e.return&&(this.return=void 0)}function t(e,t){this.v=e,this.k=t}function r(e){var r={},n=!1;function o(r,o){return n=!0,o=new Promise((function(t){t(e[r](o))})),{done:!1,value:new t(o,1)}}return r["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},r.next=function(e){return n?(n=!1,e):o("next",e)},"function"==typeof e.throw&&(r.throw=function(e){if(n)throw n=!1,e;return o("throw",e)}),"function"==typeof e.return&&(r.return=function(e){return n?(n=!1,e):o("return",e)}),r}function n(e){var t,r,n,i=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);i--;){if(r&&null!=(t=e[r]))return t.call(e);if(n&&null!=(t=e[n]))return new o(t.call(e));r="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function o(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return o=function(e){this.s=e,this.n=e.next},o.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new o(e)}function i(e){return new t(e,0)}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),v}},t}function c(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function l(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function h(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){l(i,n,o,a,s,"next",e)}function s(e){l(i,n,o,a,s,"throw",e)}a(void 0)}))}}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&void 0!==arguments[2]?arguments[2]:{},i=o.allOwnKeys,a=void 0!==i&&i;if(null!=e)if("object"!==f(e)&&(e=[e]),L(e))for(r=0,n=e.length;r0;)if(t===(r=n[o]).toLowerCase())return r;return null}var Y="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Q=function(e){return!N(e)&&e!==Y};var Z,ee=(Z="undefined"!=typeof Uint8Array&&j(Uint8Array),function(e){return Z&&e instanceof Z}),te=A("HTMLFormElement"),re=function(e){var t=Object.prototype.hasOwnProperty;return function(e,r){return t.call(e,r)}}(),ne=A("RegExp"),oe=function(e,t){var r=Object.getOwnPropertyDescriptors(e),n={};X(r,(function(r,o){var i;!1!==(i=t(r,o,e))&&(n[o]=i||r)})),Object.defineProperties(e,n)},ie="abcdefghijklmnopqrstuvwxyz",ae="0123456789",se={DIGIT:ae,ALPHA:ie,ALPHA_DIGIT:ie+ie.toUpperCase()+ae};var ue=A("AsyncFunction"),ce={isArray:L,isArrayBuffer:_,isBuffer:function(e){return null!==e&&!N(e)&&null!==e.constructor&&!N(e.constructor)&&F(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:function(e){var t;return e&&("function"==typeof FormData&&e instanceof FormData||F(e.append)&&("formdata"===(t=k(e))||"object"===t&&F(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&_(e.buffer)},isString:C,isNumber:U,isBoolean:function(e){return!0===e||!1===e},isObject:D,isPlainObject:B,isReadableStream:W,isRequest:G,isResponse:K,isHeaders:V,isUndefined:N,isDate:I,isFile:q,isBlob:z,isRegExp:ne,isFunction:F,isStream:function(e){return D(e)&&F(e.pipe)},isURLSearchParams:H,isTypedArray:ee,isFileList:M,forEach:X,merge:function e(){for(var t=Q(this)&&this||{},r=t.caseless,n={},o=function(t,o){var i=r&&$(n,o)||o;B(n[i])&&B(t)?n[i]=e(n[i],t):B(t)?n[i]=e({},t):L(t)?n[i]=t.slice():n[i]=t},i=0,a=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{},o=n.allOwnKeys;return X(t,(function(t,n){r&&F(t)?e[n]=x(t,r):e[n]=t}),{allOwnKeys:o}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,r,n){e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:function(e,t,r,n){var o,i,a,s={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)a=o[i],n&&!n(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==r&&j(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:k,kindOfTest:A,endsWith:function(e,t,r){e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return-1!==n&&n===r},toArray:function(e){if(!e)return null;if(L(e))return e;var t=e.length;if(!U(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r},forEachEntry:function(e,t){for(var r,n=(e&&e[Symbol.iterator]).call(e);(r=n.next())&&!r.done;){var o=r.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var r,n=[];null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:te,hasOwnProperty:re,hasOwnProp:re,reduceDescriptors:oe,freezeMethods:function(e){oe(e,(function(t,r){if(F(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;var n=e[r];F(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:function(e,t){var r={},n=function(e){e.forEach((function(e){r[e]=!0}))};return L(e)?n(e):n(String(e).split(t)),r},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))},noop:function(){},toFiniteNumber:function(e,t){return null!=e&&Number.isFinite(e=+e)?e:t},findKey:$,global:Y,isContextDefined:Q,ALPHABET:se,generateString:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:se.ALPHA_DIGIT,r="",n=t.length;e--;)r+=t[Math.random()*n|0];return r},isSpecCompliantForm:function(e){return!!(e&&F(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:function(e){var t=new Array(10);return function e(r,n){if(D(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[n]=r;var o=L(r)?[]:{};return X(r,(function(t,r){var i=e(t,n+1);!N(i)&&(o[r]=i)})),t[n]=void 0,o}}return r}(e,0)},isAsyncFn:ue,isThenable:function(e){return e&&(D(e)||F(e))&&F(e.then)&&F(e.catch)}};function fe(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o)}ce.inherits(fe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ce.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var le=fe.prototype,he={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){he[e]={value:e}})),Object.defineProperties(fe,he),Object.defineProperty(le,"isAxiosError",{value:!0}),fe.from=function(e,t,r,n,o,i){var a=Object.create(le);return ce.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),fe.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function pe(e){return ce.isPlainObject(e)||ce.isArray(e)}function de(e){return ce.endsWith(e,"[]")?e.slice(0,-2):e}function ye(e,t,r){return e?e.concat(t).map((function(e,t){return e=de(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}var ve=ce.toFlatObject(ce,{},null,(function(e){return/^is[A-Z]/.test(e)}));function me(e,t,r){if(!ce.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;var n=(r=ce.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ce.isUndefined(t[e])}))).metaTokens,o=r.visitor||c,i=r.dots,a=r.indexes,s=(r.Blob||"undefined"!=typeof Blob&&Blob)&&ce.isSpecCompliantForm(t);if(!ce.isFunction(o))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(ce.isDate(e))return e.toISOString();if(!s&&ce.isBlob(e))throw new fe("Blob is not supported. Use a Buffer instead.");return ce.isArrayBuffer(e)||ce.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,r,o){var s=e;if(e&&!o&&"object"===f(e))if(ce.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(ce.isArray(e)&&function(e){return ce.isArray(e)&&!e.some(pe)}(e)||(ce.isFileList(e)||ce.endsWith(r,"[]"))&&(s=ce.toArray(e)))return r=de(r),s.forEach((function(e,n){!ce.isUndefined(e)&&null!==e&&t.append(!0===a?ye([r],n,i):null===a?r:r+"[]",u(e))})),!1;return!!pe(e)||(t.append(ye(o,r,i),u(e)),!1)}var l=[],h=Object.assign(ve,{defaultVisitor:c,convertValue:u,isVisitable:pe});if(!ce.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!ce.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),ce.forEach(r,(function(r,i){!0===(!(ce.isUndefined(r)||null===r)&&o.call(t,r,ce.isString(i)?i.trim():i,n,h))&&e(r,n?n.concat(i):[i])})),l.pop()}}(e),t}function be(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function ge(e,t){this._pairs=[],e&&me(e,this,t)}var we=ge.prototype;function Ee(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Oe(e,t,r){if(!t)return e;var n,o=r&&r.encode||Ee,i=r&&r.serialize;if(n=i?i(t,r):ce.isURLSearchParams(t)?t.toString():new ge(t,r).toString(o)){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}we.append=function(e,t){this._pairs.push([e,t])},we.toString=function(e){var t=e?function(t){return e.call(this,t,be)}:be;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Se,xe=function(){function e(){p(this,e),this.handlers=[]}return y(e,[{key:"use",value:function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){ce.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),Re={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Te={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:ge,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},je="undefined"!=typeof window&&"undefined"!=typeof document,ke=(Se="undefined"!=typeof navigator&&navigator.product,je&&["ReactNative","NativeScript","NS"].indexOf(Se)<0),Ae="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Pe=je&&window.location.href||"http://localhost",Le=s(s({},Object.freeze({__proto__:null,hasBrowserEnv:je,hasStandardBrowserWebWorkerEnv:Ae,hasStandardBrowserEnv:ke,origin:Pe})),Te);function Ne(e){function t(e,r,n,o){var i=e[o++];if("__proto__"===i)return!0;var a=Number.isFinite(+i),s=o>=e.length;return i=!i&&ce.isArray(n)?n.length:i,s?(ce.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a):(n[i]&&ce.isObject(n[i])||(n[i]=[]),t(e,r,n[i],o)&&ce.isArray(n[i])&&(n[i]=function(e){var t,r,n={},o=Object.keys(e),i=o.length;for(t=0;t-1,i=ce.isObject(e);if(i&&ce.isHTMLForm(e)&&(e=new FormData(e)),ce.isFormData(e))return o?JSON.stringify(Ne(e)):e;if(ce.isArrayBuffer(e)||ce.isBuffer(e)||ce.isStream(e)||ce.isFile(e)||ce.isBlob(e)||ce.isReadableStream(e))return e;if(ce.isArrayBufferView(e))return e.buffer;if(ce.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return me(e,new Le.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return Le.isNode&&ce.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((r=ce.isFileList(e))||n.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return me(r?{"files[]":e}:e,a&&new a,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,r){if(ce.isString(e))try{return(t||JSON.parse)(e),ce.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||_e.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(ce.isResponse(e)||ce.isReadableStream(e))return e;if(e&&ce.isString(e)&&(r&&!this.responseType||n)){var o=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw fe.from(e,fe.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Le.classes.FormData,Blob:Le.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ce.forEach(["delete","get","head","post","put","patch"],(function(e){_e.headers[e]={}}));var Ce=_e,Fe=ce.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ue=Symbol("internals");function De(e){return e&&String(e).trim().toLowerCase()}function Be(e){return!1===e||null==e?e:ce.isArray(e)?e.map(Be):String(e)}function Ie(e,t,r,n,o){return ce.isFunction(n)?n.call(this,t,r):(o&&(t=r),ce.isString(t)?ce.isString(n)?-1!==t.indexOf(n):ce.isRegExp(n)?n.test(t):void 0:void 0)}var qe=function(e,t){function r(e){p(this,r),e&&this.set(e)}return y(r,[{key:"set",value:function(e,t,r){var n=this;function o(e,t,r){var o=De(t);if(!o)throw new Error("header name must be a non-empty string");var i=ce.findKey(n,o);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||t]=Be(e))}var i=function(e,t){return ce.forEach(e,(function(e,r){return o(e,r,t)}))};if(ce.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(ce.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i(function(e){var t,r,n,o={};return e&&e.split("\n").forEach((function(e){n=e.indexOf(":"),t=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!t||o[t]&&Fe[t]||("set-cookie"===t?o[t]?o[t].push(r):o[t]=[r]:o[t]=o[t]?o[t]+", "+r:r)})),o}(e),t);else if(ce.isHeaders(e)){var a,s=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=E(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(e.entries());try{for(s.s();!(a=s.n()).done;){var u=m(a.value,2),c=u[0];o(u[1],c,r)}}catch(e){s.e(e)}finally{s.f()}}else null!=e&&o(t,e,r);return this}},{key:"get",value:function(e,t){if(e=De(e)){var r=ce.findKey(this,e);if(r){var n=this[r];if(!t)return n;if(!0===t)return function(e){for(var t,r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=n.exec(e);)r[t[1]]=t[2];return r}(n);if(ce.isFunction(t))return t.call(this,n,r);if(ce.isRegExp(t))return t.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=De(e)){var r=ce.findKey(this,e);return!(!r||void 0===this[r]||t&&!Ie(0,this[r],r,t))}return!1}},{key:"delete",value:function(e,t){var r=this,n=!1;function o(e){if(e=De(e)){var o=ce.findKey(r,e);!o||t&&!Ie(0,r[o],o,t)||(delete r[o],n=!0)}}return ce.isArray(e)?e.forEach(o):o(e),n}},{key:"clear",value:function(e){for(var t=Object.keys(this),r=t.length,n=!1;r--;){var o=t[r];e&&!Ie(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}},{key:"normalize",value:function(e){var t=this,r={};return ce.forEach(this,(function(n,o){var i=ce.findKey(r,o);if(i)return t[i]=Be(n),void delete t[o];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))}(o):String(o).trim();a!==o&&delete t[o],t[a]=Be(n),r[a]=!0})),this}},{key:"concat",value:function(){for(var e,t=arguments.length,r=new Array(t),n=0;n1?r-1:0),o=1;on)return o&&(clearTimeout(o),o=null),r=a,e.apply(null,arguments);o||(o=setTimeout((function(){return o=null,r=Date.now(),e.apply(null,t)}),n-(a-r)))}}ce.inherits(Je,fe,{__CANCEL__:!0});var Ve=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,n=0,o=Ge(50,250);return Ke((function(r){var i=r.loaded,a=r.lengthComputable?r.total:void 0,s=i-n,u=o(s);n=i;var c={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&i<=a?(a-i)/u:void 0,event:r,lengthComputable:null!=a};c[t?"download":"upload"]=!0,e(c)}),r)},Xe=Le.hasStandardBrowserEnv?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function n(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=n(window.location.href),function(t){var r=ce.isString(t)?n(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0},$e=Le.hasStandardBrowserEnv?{write:function(e,t,r,n,o,i){var a=[e+"="+encodeURIComponent(t)];ce.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),ce.isString(n)&&a.push("path="+n),ce.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function Ye(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var Qe=function(e){return e instanceof ze?s({},e):e};function Ze(e,t){t=t||{};var r={};function n(e,t,r){return ce.isPlainObject(e)&&ce.isPlainObject(t)?ce.merge.call({caseless:r},e,t):ce.isPlainObject(t)?ce.merge({},t):ce.isArray(t)?t.slice():t}function o(e,t,r){return ce.isUndefined(t)?ce.isUndefined(e)?void 0:n(void 0,e,r):n(e,t,r)}function i(e,t){if(!ce.isUndefined(t))return n(void 0,t)}function a(e,t){return ce.isUndefined(t)?ce.isUndefined(e)?void 0:n(void 0,e):n(void 0,t)}function s(r,o,i){return i in t?n(r,o):i in e?n(void 0,r):void 0}var u={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:function(e,t){return o(Qe(e),Qe(t),!0)}};return ce.forEach(Object.keys(Object.assign({},e,t)),(function(n){var i=u[n]||o,a=i(e[n],t[n],n);ce.isUndefined(a)&&i!==s||(r[n]=a)})),r}var et,tt,rt,nt,ot=function(e){var t,r,n=Ze({},e),o=n.data,i=n.withXSRFToken,a=n.xsrfHeaderName,s=n.xsrfCookieName,u=n.headers,c=n.auth;if(n.headers=u=ze.from(u),n.url=Oe(Ye(n.baseURL,n.url),e.params,e.paramsSerializer),c&&u.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),ce.isFormData(o))if(Le.hasStandardBrowserEnv||Le.hasStandardBrowserWebWorkerEnv)u.setContentType(void 0);else if(!1!==(t=u.getContentType())){var f=t?t.split(";").map((function(e){return e.trim()})).filter(Boolean):[],l=g(r=f)||w(r)||E(r)||S(),h=l[0],p=l.slice(1);u.setContentType([h||"multipart/form-data"].concat(b(p)).join("; "))}if(Le.hasStandardBrowserEnv&&(i&&ce.isFunction(i)&&(i=i(n)),i||!1!==i&&Xe(n.url))){var d=a&&s&&$e.read(s);d&&u.set(a,d)}return n},it="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,r){var n,o=ot(e),i=o.data,a=ze.from(o.headers).normalize(),s=o.responseType;function u(){o.cancelToken&&o.cancelToken.unsubscribe(n),o.signal&&o.signal.removeEventListener("abort",n)}var c=new XMLHttpRequest;function f(){if(c){var n=ze.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders());We((function(e){t(e),u()}),(function(e){r(e),u()}),{data:s&&"text"!==s&&"json"!==s?c.response:c.responseText,status:c.status,statusText:c.statusText,headers:n,config:e,request:c}),c=null}}c.open(o.method.toUpperCase(),o.url,!0),c.timeout=o.timeout,"onloadend"in c?c.onloadend=f:c.onreadystatechange=function(){c&&4===c.readyState&&(0!==c.status||c.responseURL&&0===c.responseURL.indexOf("file:"))&&setTimeout(f)},c.onabort=function(){c&&(r(new fe("Request aborted",fe.ECONNABORTED,o,c)),c=null)},c.onerror=function(){r(new fe("Network Error",fe.ERR_NETWORK,o,c)),c=null},c.ontimeout=function(){var e=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded",t=o.transitional||Re;o.timeoutErrorMessage&&(e=o.timeoutErrorMessage),r(new fe(e,t.clarifyTimeoutError?fe.ETIMEDOUT:fe.ECONNABORTED,o,c)),c=null},void 0===i&&a.setContentType(null),"setRequestHeader"in c&&ce.forEach(a.toJSON(),(function(e,t){c.setRequestHeader(t,e)})),ce.isUndefined(o.withCredentials)||(c.withCredentials=!!o.withCredentials),s&&"json"!==s&&(c.responseType=o.responseType),"function"==typeof o.onDownloadProgress&&c.addEventListener("progress",Ve(o.onDownloadProgress,!0)),"function"==typeof o.onUploadProgress&&c.upload&&c.upload.addEventListener("progress",Ve(o.onUploadProgress)),(o.cancelToken||o.signal)&&(n=function(t){c&&(r(!t||t.type?new Je(null,e,c):t),c.abort(),c=null)},o.cancelToken&&o.cancelToken.subscribe(n),o.signal&&(o.signal.aborted?n():o.signal.addEventListener("abort",n)));var l,h,p=(l=o.url,(h=/^([-+\w]{1,25})(:?\/\/|:)/.exec(l))&&h[1]||"");p&&-1===Le.protocols.indexOf(p)?r(new fe("Unsupported protocol "+p+":",fe.ERR_BAD_REQUEST,e)):c.send(i||null)}))},at=function(e,t){var r,n=new AbortController,o=function(e){if(!r){r=!0,a();var t=e instanceof Error?e:this.reason;n.abort(t instanceof fe?t:new Je(t instanceof Error?t.message:t))}},i=t&&setTimeout((function(){o(new fe("timeout ".concat(t," of ms exceeded"),fe.ETIMEDOUT))}),t),a=function(){e&&(i&&clearTimeout(i),i=null,e.forEach((function(e){e&&(e.removeEventListener?e.removeEventListener("abort",o):e.unsubscribe(o))})),e=null)};e.forEach((function(e){return e&&e.addEventListener&&e.addEventListener("abort",o)}));var s=n.signal;return s.unsubscribe=a,[s,function(){i&&clearTimeout(i),i=null}]},st=u().mark((function e(t,r){var n,o,i;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.byteLength,r&&!(n1?"since :\n"+s.map(Et).join("\n"):" "+Et(s[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function xt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Je(null,e)}function Rt(e){return xt(e),e.headers=ze.from(e.headers),e.data=Me.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),St(e.adapter||Ce.adapter)(e).then((function(t){return xt(e),t.data=Me.call(e,e.transformResponse,t),t.headers=ze.from(t.headers),t}),(function(t){return He(t)||(xt(e),t&&t.response&&(t.response.data=Me.call(e,e.transformResponse,t.response),t.response.headers=ze.from(t.response.headers))),Promise.reject(t)}))}var Tt="1.7.2",jt={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){jt[e]=function(r){return f(r)===e||"a"+(t<1?"n ":" ")+e}}));var kt={};jt.transitional=function(e,t,r){function n(e,t){return"[Axios v1.7.2] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,o,i){if(!1===e)throw new fe(n(o," has been removed"+(t?" in "+t:"")),fe.ERR_DEPRECATED);return t&&!kt[o]&&(kt[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,i)}};var At={assertOptions:function(e,t,r){if("object"!==f(e))throw new fe("options must be an object",fe.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),o=n.length;o-- >0;){var i=n[o],a=t[i];if(a){var s=e[i],u=void 0===s||a(s,i,e);if(!0!==u)throw new fe("option "+i+" must be "+u,fe.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new fe("Unknown option "+i,fe.ERR_BAD_OPTION)}},validators:jt},Pt=At.validators,Lt=function(){function e(t){p(this,e),this.defaults=t,this.interceptors={request:new xe,response:new xe}}var t;return y(e,[{key:"request",value:(t=h(u().mark((function e(t,r){var n,o;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._request(t,r);case 3:return e.abrupt("return",e.sent);case 6:if(e.prev=6,e.t0=e.catch(0),e.t0 instanceof Error){Error.captureStackTrace?Error.captureStackTrace(n={}):n=new Error,o=n.stack?n.stack.replace(/^.+\n/,""):"";try{e.t0.stack?o&&!String(e.t0.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(e.t0.stack+="\n"+o):e.t0.stack=o}catch(e){}}throw e.t0;case 10:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,r){return t.apply(this,arguments)})},{key:"_request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var r=t=Ze(this.defaults,t),n=r.transitional,o=r.paramsSerializer,i=r.headers;void 0!==n&&At.assertOptions(n,{silentJSONParsing:Pt.transitional(Pt.boolean),forcedJSONParsing:Pt.transitional(Pt.boolean),clarifyTimeoutError:Pt.transitional(Pt.boolean)},!1),null!=o&&(ce.isFunction(o)?t.paramsSerializer={serialize:o}:At.assertOptions(o,{encode:Pt.function,serialize:Pt.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();var a=i&&ce.merge(i.common,i[t.method]);i&&ce.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete i[e]})),t.headers=ze.concat(a,i);var s=[],u=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(u=u&&e.synchronous,s.unshift(e.fulfilled,e.rejected))}));var c,f=[];this.interceptors.response.forEach((function(e){f.push(e.fulfilled,e.rejected)}));var l,h=0;if(!u){var p=[Rt.bind(this),void 0];for(p.unshift.apply(p,s),p.push.apply(p,f),l=p.length,c=Promise.resolve(t);h0;)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},t((function(e,t,o){n.reason||(n.reason=new Je(e,t,o),r(n.reason))}))}return y(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}();var Ct={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ct).forEach((function(e){var t=m(e,2),r=t[0],n=t[1];Ct[n]=r}));var Ft=Ct;var Ut=function e(t){var r=new Nt(t),n=x(Nt.prototype.request,r);return ce.extend(n,Nt.prototype,r,{allOwnKeys:!0}),ce.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(Ze(t,r))},n}(Ce);return Ut.Axios=Nt,Ut.CanceledError=Je,Ut.CancelToken=_t,Ut.isCancel=He,Ut.VERSION=Tt,Ut.toFormData=me,Ut.AxiosError=fe,Ut.Cancel=Ut.CanceledError,Ut.all=function(e){return Promise.all(e)},Ut.spread=function(e){return function(t){return e.apply(null,t)}},Ut.isAxiosError=function(e){return ce.isObject(e)&&!0===e.isAxiosError},Ut.mergeConfig=Ze,Ut.AxiosHeaders=ze,Ut.formToJSON=function(e){return Ne(ce.isHTMLForm(e)?new FormData(e):e)},Ut.getAdapter=St,Ut.HttpStatusCode=Ft,Ut.default=Ut,Ut})); +//# sourceMappingURL=axios.min.js.map diff --git a/src/assets/js/jquery.mask.min.js b/src/assets/js/jquery.mask.min.js new file mode 100644 index 0000000..1f22376 --- /dev/null +++ b/src/assets/js/jquery.mask.min.js @@ -0,0 +1,19 @@ +// jQuery Mask Plugin v1.14.16 +// github.com/igorescobar/jQuery-Mask-Plugin +var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,n,f){a instanceof String&&(a=String(a));for(var p=a.length,k=0;kg?h=10*d:e>=h&&e!==g?c.maskDigitPosMapOld[h]||(e=h,h=h-(k-l)-a,c.maskDigitPosMap[h]&&(h=e)):h>e&&(h=h+(l-k)+f)}return h},behaviour:function(d){d= +d||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,l.byPassKeys)){e=c.getMasked();var h=c.getCaret(),g=b.data("mask-previus-value")||"";setTimeout(function(){c.setCaret(c.calculateCaretPosition(g))},a.jMaskGlobals.keyStrokeCompensation);c.val(e);c.setCaret(h);return c.callbacks(d)}},getMasked:function(a,b){var h=[],f=void 0===b?c.val():b+"",g=0,k=d.length,n=0,p=f.length,m=1,r="push",u=-1,w=0;b=[];if(e.reverse){r="unshift";m=-1;var x=0;g=k-1;n=p-1;var A=function(){return-1< +g&&-1.ico-c { + display: none; +} + +.ico-c.select-close-selection { + position: absolute; + right: 2px; + top: 2px; + width: 16px; + height: 16px; + cursor: pointer; +} + +input[type='text'], +input[type='password'], +input[type='date'], +input[type='datetime-local'], +input[type='tel'], +input[type='number'], +input[type='email'], +input[type='file'], +select, +textarea, +.input-a, +.form-select-activator { + padding: var(--form-input-padding); + height: 44px; + font-size: var(--form-input-font-size); +} + +.form-select-activator { + min-height: 44px; + height: auto; +} + +input[type='file'] { + cursor: pointer; +} + +textarea { + height: initial; +} + +input::placeholder { + opacity: 0.5; + font-style: italic; +} + +.invalid { + border: 2px solid rgb(var(--form-alert-color)) !important; + box-shadow: var(--form-alert-shadow); +} + +.disabled, +input:disabled, +textarea:disabled { + border: 2px solid rgb(var(--form-disabled-color)); + opacity: 0.4; + cursor: auto; +} + +.changed { + border: 1px solid #efa471; +} + +label { + display: flex; + flex-wrap: wrap; + width: 100%; + padding: 2px; +} + +label>span { + padding-bottom: 4px; + padding-left: 8px; + width: 100%; + word-break: break-word; +} + +label>input:not([type='radio']):not([type='checkbox']), +label>textarea, +label>select, +.form-select-activator { + width: 100%; +} + +label.label-row { + flex-direction: row; +} + +label.label-row>span { + padding-right: 8px; + padding-bottom: 0; + padding-left: 0; +} + +.label-radio { + align-items: center; + width: initial; + margin-right: 16px; + margin-bottom: 16px; + flex-wrap: nowrap; + align-items: flex-start; +} + +.label-radio.disabled { + border: none; +} + +.label-radio>span { + width: initial; + padding-bottom: 0; +} + +.label-radio.disabled>span { + color: rgb(var(--c-disabled)); +} + +.label-radio>span a { + text-decoration: underline; +} + +.labe-content { + display: flex; + width: 100%; +} + +.form-accept-content .label-radio { + margin-bottom: 0; +} + +.form-select-list-c { + width: 100%; + display: flex; + position: relative; +} + +.form-select-input { + width: 100%; +} + +.form-select-list { + box-shadow: var(--sh-bottom); + position: fixed; + z-index: 999; + background-color: rgb(255, 255, 255); + border: 2px solid rgb(150, 150, 150); + overflow: hidden; + overflow-y: auto; + border-radius: 8px; +} + +.form-select-list-item { + padding: 12px 8px; + cursor: pointer; +} + +.form-select-list-item:hover { + background-color: rgba(var(--c-primary), 0.2); +} + +.form-select-list-item.selected { + background-color: rgba(var(--c-primary), 0.1); +} + +.select-box-check { + width: 14px; + height: 14px; + margin-right: 8px; +} + +/* buttons */ +button, +.button-c { + padding: var(--button-padding); + background-color: rgb(var(--button-back-default)); + color: rgb(var(--button-color)); + border-radius: var(--button-border-radius); + font-size: var(--button-font-size); + cursor: pointer; + min-height: 44px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 8px; + border: none; + transition: var(--trn-std); +} + +.button-c:hover { + color: rgb(255, 255, 255); + background-color: rgb(var(--button-back-hover-default)); +} + +.button-c:hover span { + color: rgb(255, 255, 255); +} + +button svg, +.button-c svg { + fill: rgb(var(--button-color)); + max-width: 24px; + max-height: 24px; +} + +.button-icon { + justify-content: flex-start; +} + +.button-icon i { + margin-right: 16px; +} + +.button-second { + background-color: rgb(var(--button-back-secondary)); +} + +.button-export, +.button-documents { + background-color: rgb(235, 235, 235); + width: 100%; +} + +.button-export:hover svg { + fill: #fff; +} + +.button-save { + background-color: rgb(var(--button-back-save)); +} + +.button-cancel { + background-color: rgb(var(--button-back-cancel)); +} + +.button-alert { + background-color: rgb(var(--button-back-alert)); +} + +.button-cancel:hover { + background-color: rgb(100, 100, 100); +} + +.button-belge { + background-color: rgb(235, 235, 235); +} + +.button-c:disabled { + background-color: rgb(var(--c-disabled)); +} + +/* icons */ +svg { + max-width: 100%; + max-height: 100%; +} + +.ico-c { + display: flex; + justify-content: center; + align-items: center; + width: 24px; + height: 24px; + transition: var(--trn-std); +} + +.ico-btn { + cursor: pointer; +} + +.ico-c svg { + fill: rgb(var(--c-primary)); + max-width: 24px; + max-height: 24px; +} + +/* colors */ +.back-grad { + padding: 6px 8px; + color: #fff; + border-radius: 4px; + display: inline-block; +} + +.back-grad-title { + background-image: linear-gradient(24deg, #73a4dc, #2365af); +} + +.back-grad-new { + background-image: linear-gradient(24deg, #b212ed, #770093); +} + +.back-grad-waiting { + background-image: linear-gradient(24deg, #eda512, #cb7c02); +} + +.back-grad-alert { + background-image: linear-gradient(24deg, #f57c7c, #9a0000); +} + +.back-grad-next { + background-image: linear-gradient(24deg, #73a4dc, #2365af); +} + +.back-grad-ok { + background-image: linear-gradient(24deg, #2fc939, #097401); +} + +.back-grad-beforeok { + background-image: linear-gradient(24deg, #ff6400, #00604b); +} + +.back-grad-change { + background-image: linear-gradient(24deg, #008a17, #770093); +} + +.back-grad-finish { + background-image: linear-gradient(24deg, #008a17, #770093); +} +.back-grad-sevk { + color: #777777; + background-image: linear-gradient(24deg, #bfcbd8, #e1dcdc); +} +.back-grad-sevk-ok { + color: #242424; +} +.back-grad-grey { + background-image: linear-gradient(24deg, #e6e6e6, #e1dcdc); + color: #000; + padding: 12px; +} + +.back-grey { + background-color: #f1f1f1; +} + +/* login */ +.login-w { + min-width: 100%; + min-height: 100vh; + justify-content: center; + display: flex; + align-items: center; +} + +.login-page main { + padding: 32px; + max-width: 480px; + justify-content: center; + flex-direction: row; + align-items: center; +} + +.section-login { + padding: 16px; + transition: var(--trn-std); +} + +.section-login .section-content { + flex-direction: column; +} + +.login-header { + display: flex; + flex: 1; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid rgb(var(--c-border-primary)); + padding-bottom: 16px; + margin-bottom: 32px; +} + +.login-header h1 { + font-size: 1em; +} + +.login-header .logo-header { + margin-left: 0; + max-width: 144px; +} + +.button-login { + width: 100%; +} + +.section-login form { + margin-bottom: 32px; +} + +.login-nav { + display: flex; + flex-direction: column; + text-align: right; +} + +.login-nav-back { + text-align: left; +} + +.login-nav a { + padding: 8px 0; + font-weight: 500; +} + +/* header */ +header { + background-color: rgb(var(--c-header-back)); + box-shadow: var(--sh-bottom); + max-height: var(--sz-header); + display: flex; + justify-content: space-between; + padding: 0 8px; + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 30; +} + +.header-c { + display: flex; + height: 64px; + align-items: center; +} + +.header-c>.ico-c { + width: 32px; + height: 64px; +} + +.ico-notification svg { + width: 18px; +} + +.header-profile { + position: relative; +} + +.b-menu-profile { + width: 64px; + height: 64px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + margin-left: 16px; +} + +.profile-photo-c { + width: 56px; + height: 56px; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + position: relative; + border-radius: 100%; +} + +.profile-photo-c img { + position: absolute; + max-width: 100%; + max-height: 100%; +} + +/* badge */ +.badge-have { + position: relative; +} + +.badge-have>.badge-c { + display: flex; +} + +.badge-notification { + width: 8px; + height: 8px; + border-radius: 100%; + background-color: var(--c-badge-notidication-back); + margin-bottom: 16px; + right: 0; + position: absolute; +} + +/* menu */ +.menu-side-w { + position: fixed; + z-index: 8; + top: var(--sz-header); + height: calc(100% - var(--sz-header)); + left: -200px; + width: 200px; + box-shadow: var(--sh-bottom); + background-color: rgb(var(--c-menu-side-back)); +} + +.menu-side-shadow { + z-index: 10; + width: 100vw; + height: 100vh; + background-color: rgba(0, 0, 0, 0.5); + position: fixed; + left: 0; + top: 0; + opacity: 0; + transition: var(--trn-std); + visibility: hidden; + pointer-events: none; + z-index: 7; +} + +.menu-side-shadow.showme { + visibility: visible; + opacity: 1; + pointer-events: all; + display: flex; +} + +.ico-mobile-menu { + cursor: pointer; +} + +.ico-mobile-menu svg { + width: 24px; + height: 24px; +} + +nav>ul { + display: flex; + flex-direction: column; + width: 100%; +} + +nav>ul>li { + display: flex; + width: 100%; + position: relative; + flex-direction: column; +} + +nav>ul li .ico-c { + margin-right: 4px; +} + +nav ul li>a, +nav ul li>div { + display: flex; + width: 100%; + padding: 12px 16px; + align-items: center; +} + +.menu-have-sub { + cursor: pointer; +} + +.menu-sub { + position: absolute; + height: auto; + background-color: rgb(var(--c-menu-top-sub-back)); + z-index: 1; + min-width: 200px; + box-shadow: var(--sh-bottom); +} + +header .menu-sub { + border-top: 3px solid rgb(var(--c-menu-side-sub-border)); +} + +.menu-sub>ul>li, +.menu-side-w nav>ul>li { + border-bottom: 1px solid rgba(var(--c-menu-sub-border), 0.15); +} + +.menu-sub>ul>li:last-child { + border-bottom: none; +} + +.menu-open { + position: relative; +} + +.menu-open>.menu-sub { + display: flex; +} + +.menu-sub.menu-sub-left { + left: 100%; +} + +.menu-sub.menu-sub-right { + right: 0; +} + +.menu-sub-open>.menu-sub { + display: flex; +} + +.menu-side-w .menu-sub { + background-color: rgb(var(--c-menu-side-sub-back)); + border-left: 3px solid rgb(var(--c-menu-side-sub-border)); + position: relative; + left: 0; +} + +.menu-side-w .menu-open { + flex-direction: column; +} + +.menu-side-w>nav>ul>li .menu-have-sub:after { + content: ''; + width: 8px; + height: 12px; + background-color: rgb(var(--c-primary)); + -webkit-mask-image: url(../images/arrow.svg); + mask-image: url(../images/arrow.svg); + position: absolute; + right: 8px; +} + +.menu-profile { + right: 0; + width: 360px; +} + +/* layout */ + +.main-page main { + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} + +section { + background-color: rgb(var(--c-section-back)); + border-radius: var(--section-border-radius); + box-shadow: var(--sh-section); + position: relative; + width: 100%; + display: flex; + transition: var(--trn-std); + flex-wrap: wrap; + align-items: flex-start; +} + +.main-page main section { + width: 100%; + margin-bottom: 24px; +} + +.section-header { + display: flex; + justify-content: flex-start; + align-items: center; + padding: var(--section-m-padding); + border-bottom: 1px solid rgb(var(--c-section-header-border)); + width: 100%; + flex-wrap: wrap; +} + +.section-header h1 { + font-size: 1.1em; + font-weight: 500; + margin: 0; + display: flex; + flex-direction: column; + padding-right: 8px; +} + +.section-header-count { + color: rgb(var(--c-primary)); + font-size: 0.875em; + font-weight: 400; +} + +.ico-section { + width: 44px; + height: 44px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 8px; + margin-right: 8px; + flex-shrink: 0; +} + +.ico-section svg { + width: 24px; + max-height: 24px; +} + +.ico-section svg { + fill: rgb(255, 255, 255); +} + +.section-header-buttons-c { + margin-left: auto; + position: relative; + display: flex; + flex-wrap: wrap; +} +.header-extra-buttons-C{ + display: flex; + align-items: center; + margin-bottom: 16px; + margin-top: 16px; +} +.section-header-buttons { + padding: 8px; + border-radius: 8px; + border-top: 3px solid rgb(var(--c-border-primary)); + min-width: inherit; + top: 100%; +} + +.list-search-c { + position: relative; + display: flex; + align-items: center; +} +.header-buttons-C{ + display: flex; + align-items: center; + position: relative; +} + +.ico-section-header-btn { + background-color: rgb(var(--c-section-header-button-back)); + cursor: pointer; +} + +.ico-section-header-btn svg { + fill: rgb(var(--c-section-header-button-ico)); + transition: var(--trn-std); +} + +.ico-section-header-btn:hover { + background-color: rgb(var(--button-back-hover-default)); +} + +.ico-section-header-btn:hover svg { + fill: rgb(255, 255, 255); +} + +.section-content { + display: flex; + width: 100%; +} + +.section-list { + flex-direction: column; +} + +.section-list .section-content { + width: 100%; + flex-direction: column; +} + +.section-content.section-inner { + padding: 10px; +} + +.list-wrapper { + width: 100%; + position: relative; + overflow: hidden; + overflow-x: auto; +} + +.list-content { + display: flex; + flex-direction: column; +} + +.list-content-item { + display: flex; +} + +.list-second-line { + font-size: var(--f-list-second-line); + color: rgb(var(--c-list-second-line)); +} + +.list-col-day { + color: rgb(var(--c-list-col-date)); +} + +.list-filter-wrapper { + display: flex; + flex-direction: column; + padding: 12px; + border-radius: 8px; + margin-bottom: 8px; + background-color: rgb(var(--c-default-grey-back)); + width: 100%; +} + +.list-filter-content { + padding: 8px 0; + display: flex; + flex-wrap: wrap; + width: 100%; +} + +.list-filter-item { + font-size: 0.875em; + flex-shrink: 0; + padding: 4px 32px 4px 6px; + margin-right: 8px; + background-color: rgb(255, 255, 255); + border-radius: 4px; + position: relative; + display: flex; + height: 26px; +} + +.list-filter-close { + position: absolute; + width: 26px; + height: 26px; + background-color: rgb(163, 25, 20); + display: flex; + justify-content: center; + align-items: center; + right: 0; + top: 0; + border-radius: 0 4px 4px 0; + cursor: pointer; +} + +.list-filter-close:before, +.list-filter-close:after { + content: ''; + width: 16px; + height: 2px; + background-color: rgb(255, 255, 255); + transform: rotate(45deg); + display: inline-block; + position: absolute; +} + +.list-filter-close:after { + transform: rotate(-45deg); +} + +/* panel */ +.panel-wrapper { + width: 100%; + position: fixed; + z-index: 10; + box-shadow: var(--sh-bottom); + top: var(--sz-header); + background-color: rgb(var(--c-panel-back)); + border-top: 3px solid rgb(var(--c-panel-border)); + height: calc(100% - var(--sz-header)); + transition: var(--trn-std); +} + +.panel-open, +.panel-close { + cursor: pointer; +} + +.panel-wrapper.panel-right { + left: 100%; +} + +.panel-wrapper.panel-right.showme { + left: 0; +} + +.panel-header, +.panel-footer { + padding: var(--panel-padding); + border-bottom: 1px solid rgb(var(--c-panel-header-border)); + height: 64px; + display: flex; + align-items: center; + position: relative; + width: 100%; +} + +.panel-header { + justify-content: space-between; +} + +.panel-footer .button-c { + flex: 1; +} + +.panel-close-btn, +.toast-close-btn { + width: 44px; + height: 44px; + position: absolute; + display: flex; + justify-content: center; + align-items: center; + right: 0; + cursor: pointer; +} + +.toast-close-btn { + top: 0; +} + +.panel-close-btn:before, +.panel-close-btn:after, +.toast-close-btn:before, +.toast-close-btn:after { + content: ''; + position: absolute; + width: 60%; + height: 2px; + background-color: rgb(var(--c-text-primary)); + transform: rotate(45deg); +} + +.panel-close-btn:after, +.toast-close-btn:after { + transform: rotate(-45deg); +} + +.panel-content { + overflow: hidden; + overflow-y: auto; + position: relative; + width: 100%; + height: calc(100vh - 64px - var(--sz-header)); + padding-bottom: 16px; + display: flex; + flex-wrap: wrap; + align-content: flex-start; +} + +.panel-have-footer .panel-content { + height: calc(100vh - 128px - var(--sz-header)); +} + +.panel-content-item { + display: flex; + width: 100%; +} + +.panel-content-item.back-grey { + background-color: rgb(245, 245, 245); + border-radius: 10px; +} + +.panel-notification-content { + padding: var(--panel-padding); +} + +.panel-notification-content .panel-content-item { + background-color: rgb(245, 245, 245); + border-radius: 10px; + margin-bottom: 8px; +} + +.panel-notification-content .panel-content-item p { + margin-top: 0; +} + +.panel-notification-content .panel-content-item .panel-date { + color: rgb(120, 120, 120); + font-size: 0.75em; +} + +.panel-export-content .panel-content-item { + padding: var(--panel-padding) var(--panel-padding) 0 var(--panel-padding); +} + +.panel-filter-content .panel-content-item { + border-bottom: 1px solid rgb(var(--c-border-primary)); +} + +.panel-filter-content .panel-content-item { + display: flex; + align-items: flex-end; +} + +.panel-filter-content .panel-content-item label { + margin-right: 8px; +} + +.panel-documents-item .input-a { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; +} + +.panel-documents-item .input-a i { + margin: 0; + width: 36px; + height: 36px; +} + +.panel-documents-item input[type='file'] { + display: none; +} + +.panel-page-menu-item { + width: 100%; + margin-bottom: 16px; +} + +.preview-content { + padding: 16px; + width: 100%; +} + +.preview-content .form-part-title-buttons, +.preview-content .form-inner-comment { + display: none !important; +} + +.preview-content .form-part-title { + margin: 0; + padding: 8px; + background-color: #f1f1f1; +} + +.preview-shadow { + width: 800px; + position: fixed; + left: 110%; + top: 110%; +} + +.preview-page-part { + width: 100%; +} + +.preview-page-part .form-part { + border: none; + box-shadow: none; +} + +.preview-part-title { + font-weight: 800; + padding: 16px; +} + +.preview-part { + margin-bottom: 24px +} + +.preview-content table, +.print-c table { + border: 1px solid #e7e7e7; +} + +.preview-content table tr td, +.print-c table tr td { + padding: 6px; +} + +.preview-content table tr td, +.print-c table tr td { + border-bottom: 1px solid #e7e7e7; +} + +.preview-content table tr td:not(:last-child), +.print-c table tr td:not(:last-child) { + border-right: 1px solid #e7e7e7; +} + +.table-no-line, +.table-no-line tr td { + border: none !important; +} + +/* page toast */ +.page-toast-w { + position: fixed; + display: flex; + flex-direction: column; + justify-content: flex-end; + align-items: flex-end; + padding: 32px; + right: 0; + bottom: 0; + z-index: 9999; + width: 100%; +} + +.page-toast-item { + display: flex; + position: relative; + border-radius: 16px; + padding: 16px 44px 16px 16px; + background-color: rgb(var(--toast-back)); + width: 100%; + box-shadow: var(--toast-shadow); + transition: var(--trn-std); + margin-top: 16px; +} + +.toast-item-alert { + background-color: rgb(var(--toast-back-alert)); +} + +.toast-item-success { + background-color: rgb(var(--toast-back-success)); +} + +.toast-item-ready { + background-color: rgb(var(--toast-back-ready)); +} + +.page-toast-item span { + color: rgb(var(--toast-color-invert)); +} + +.page-toast-item .toast-close-btn:before, +.page-toast-item .toast-close-btn:after { + background-color: rgb(var(--toast-color-invert)); +} + +/* breadcrumb */ +.breadcrumb-wrapper { + display: flex; + width: 100%; + margin-bottom: 16px; + padding-bottom: 10px; + border-bottom: 1px solid rgb(var(--c-border-primary)); +} + +.breadcrumb-wrapper .ico-c { + max-width: 12px; + max-height: 12px; +} + +.breadcrumb-wrapper a, +.breadcrumb-wrapper span, +.breadcrumb-wrapper .breadcrumb-link { + display: flex; + align-items: center; + padding: 8px 12px; +} + +.breadcrumbs-list { + display: flex; + align-items: center; +} + +.breadcrumbs-list, +.breadcrumbs-back { + border-radius: 8px; + background-color: rgb(var(--c-breadcrumb-button-back)); + max-height: 32px; +} + +.breadcrumbs-back { + margin-right: 8px; + padding: 0 !important; +} + +.breadcrumbs-back .ico-clickable { + padding: 8px 12px; + cursor: pointer; +} + +.breadcrumbs-back svg { + transform: rotate(180deg); + justify-content: center; + width: 8px; +} + +.breadcrumbs-list a { + border-right: 1px solid rgb(var(--c-border-primary)); +} + +/* pagination */ +.list-paging-wrapper { + display: flex; + justify-content: flex-end; + align-items: center; + margin-top: 12px; + position: relative; +} + +.pagination-content { + background-color: rgb(244, 244, 244); + border-radius: 8px; + padding: 8px; + display: flex; + align-items: center; + position: relative; +} + +.pagination-nav { + display: flex; + width: 44px; + height: 44px; + justify-content: center; + align-items: center; + cursor: pointer; + margin: 0 8px; +} + +.pagination-nav svg { + height: 16px; +} + +.pagination-nav-prev svg { + transform: rotate(180deg); +} + +.pagination-current-page { + border: none; + max-width: 60px; + margin: 0 12px; + text-align: center; +} + +.pagination-total-page { + margin-right: 12px; +} + +/* forms */ +.section-header-search { + width: calc(100vw - 48px); + padding: 8px; + background-color: rgb(var(--c-section-header-button-back)); + left: 24px; + max-width: 100vw; + position: fixed; +} + +#list-search-form { + display: flex; + flex: 1; + align-items: center; +} + +#list-search-form input { + flex: 1; +} + +/* section forms */ +.form-part { + background-color: rgb(var(--c-section-back)); + border-radius: var(--section-border-radius); + box-shadow: var(--sh-form); + position: relative; + display: flex; + transition: var(--trn-std); + flex-wrap: wrap; + align-items: flex-start; + margin-bottom: 16px; + padding: 12px; + width: 100%; +} + +.form-title { + display: flex; + justify-content: space-between; +} + +.form-title .form-item { + margin-bottom: 0; +} + +.form-title input { + width: 100%; +} + +.form-title-buttons { + display: flex; +} + +.form-title input { + font-size: 1.25em; + font-weight: 500; +} + +.title-second { + width: 100%; + display: flex; + padding-top: 16px; + padding-left: 8px; +} + +.form-buttons { + display: flex; +} + +.form-content { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + width: 100%; +} + +.form-inner-content { + width: 100%; +} + +.form-content .form-part { + flex-direction: column; +} + +.form-part-title { + display: flex; + width: 100%; + padding: 8px 0; + margin-bottom: 16px; + justify-content: space-between; + align-items: center; +} + +.form-part-title-buttons { + display: flex; +} + +.form-part-content { + display: flex; + flex-direction: row; + flex-wrap: wrap; + width: 100%; + overflow: hidden; + position: relative; + overflow-x: auto; +} + +.form-item { + display: flex; + width: 100%; + margin-bottom: 20px; + flex-wrap: wrap; + align-items: flex-start; +} + +.form-item-display { + border: 1px solid #dddddd; + padding: 8px; + margin-bottom: 0; +} + +.panel-content .form-item.form-item-display { + padding: 8px; +} + +.form-item-wb { + flex-wrap: nowrap; + align-items: flex-end; +} + +.display-title { + width: 100%; + padding-bottom: 8px; + border-bottom: 1px solid #e7e7e7; + margin-bottom: 8px; +} + +.form-item-display-nb { + border: none; + padding: 0; +} + +.form-item-button { + display: flex; + flex-shrink: 0; +} + +.form-display-extra { + border-top: 1px solid #e7e7e7; + margin-top: 8px; + padding: 8px 8px 0 8px; + width: 100%; +} + +.panel-content .form-item { + padding: 16px; + margin-bottom: 0; + align-items: flex-start; +} + +.preview-content .form-item { + align-items: flex-start; + padding: 0 !important; +} + +.preview-content .display-title { + padding-top: 8px; +} + +.form-select-input .form-item { + margin-bottom: 0; + padding: 0; +} + +.preview-shadow .form-item-half { + width: 50%; + padding-right: 16px; +} + +.form-item-title { + width: 100%; + margin-bottom: 8px; +} + +.form-item-picture { + width: 120px; + height: 120px; + margin-right: 8px; + border-radius: 4px; + overflow: hidden; + position: relative; + border: 1px solid rgb(var(--c-border-primary)); + display: flex; + justify-content: center; + align-items: center; + background-color: rgb(var(--c-default-grey-back)); +} + +.form-item-picture.small-picture { + width: 64px; + height: 64px; + flex-shrink: 0; +} + +.form-item-picture .image-c { + width: 100%; + height: 100%; + position: absolute; + display: flex; + top: 0; + left: 0; +} + +.form-item-picture .image-c img { + position: absolute; + width: 100%; + height: 100%; + object-fit: cover; +} + +.form-item-picture.form-item-picture-single { + width: 100%; + height: 300px; +} + +.form-item-picture input[type='file'] { + width: 100%; + height: 100%; + display: none; +} + +.form-item-description, +.form-item-alert { + width: 100%; + padding: 2px 8px; + font-size: .9em; +} + +.form-item-description { + color: rgb(var(--form-description-color)); + font-style: italic; +} + +.form-item-alert { + color: rgb(var(--form-alert-color)); + font-weight: 600; +} + +.form-inner-comment { + margin: 10px 0; + background-color: rgb(var(--c-default-grey-back)); + padding: 8px; + border-radius: 4px; +} + +.form-inner-comment.success { + background-color: rgba(var(--toast-back-success), .2); +} + +.form-inner-comment.waiting { + background-color: rgba(var(--toast-back-ready), .2); +} + +.form-inner-comment.alert { + background-color: rgba(var(--toast-back-alert), .2); +} + +.form-inner-comment.success-d { + padding: 12px; + width: 100%; + color: #fff; + background-color: rgba(var(--toast-back-success)); +} + +.form-inner-comment.waiting-d { + padding: 12px; + width: 100%; + color: #fff; + background-color: rgba(var(--toast-back-ready)); +} + +.form-inner-comment.alert-d { + padding: 12px; + width: 100%; + color: #fff; + background-color: rgba(var(--toast-back-alert)); +} + +.form-inner-comment.new-d { + padding: 12px; + width: 100%; + color: #fff; + background-color: rgba(var(--toast-back-new)); +} + +.waiting-d strong, +.alert-d strong, +.success-d strong, +.new-d strong { + color: #fff; + text-decoration: underline; +} + +.button-documents { + width: 100%; + justify-content: space-between; +} + +.file-item { + display: flex; + flex-wrap: wrap; + border: 1px solid rgb(var(--form-input-border-color)); + margin-bottom: 8px; + border-radius: 8px; + width: 100%; +} + +.file-item-title { + width: 100%; + border-bottom: 1px solid rgb(var(--c-table-border)); + padding: 8px; +} + +.file-item-file-c { + display: flex; + align-items: center; + width: 100%; + position: relative; +} + +.only-image .ico-replace { + position: absolute; + right: 0; + top: 0; + margin: 0; +} + +.file-item-file { + display: flex; + align-items: center; + padding: 8px; + width: 100%; +} + +.file-item-name { + word-wrap: break-word; + overflow: hidden; +} + +.file-item-file-c .ico-replace { + position: absolute; + right: 0; +} + +/* tabs */ +.tabs-buttons-c { + display: flex; + margin: 32px 0; + border-bottom: 1px solid rgb(var(--c-border-primary)); + width: 100%; + position: relative; + overflow: hidden; +} + +.tab-button { + min-height: 48px; + background-color: rgb(var(--c-tab-back)); + color: rgb(var(--c-tab-text)); + padding: 12px 24px; + border-radius: var(--tab-border-radius); + cursor: pointer; + margin: 0 50px; + width: calc(100% - 100px); + flex-shrink: 0; + text-align: center; + transition: var(--trn-std); +} + +.tab-button.tab-selected, +.tab-button:hover { + color: rgb(var(--c-tab-selected-text)); + background-color: rgb(var(--c-tab-selected-back)); +} + +.tabs-contents-c { + display: flex; + width: 100%; + overflow: hidden; +} + +.tab-content { + width: 100%; + display: inline-block; + flex-shrink: 0; +} + +.tab-animate { + transition-timing-function: ease-in-out; + transition-property: all; +} + +.tab-nav-button { + position: absolute; + display: flex; + width: 44px; + justify-content: center; + align-items: center; + cursor: pointer; + height: 100%; +} + +.tab-nav-button-prev { + left: 0; +} + +.tab-nav-button-prev .ico-c { + transform: rotate(180deg); +} + +.tab-nav-button-next { + right: 0; +} + +.tab-nav-button .ico-c { + width: 32px; + height: 32px; +} + +.tab-nav-button .ico-c svg { + max-width: 32px; + max-height: 32px; +} + +/* Site Management */ +.menu-list-group { + display: flex; + width: 100%; + flex-direction: column; +} + +.menu-list-item { + display: flex; + width: 100%; + justify-content: space-between; + align-items: center; + padding: 4px 8px 4px 16px; + border: 1px solid #dfdfdf; + margin-bottom: 8px; + border-radius: 8px; + cursor: grab; +} + +.menu-list-item.menu-list-item-page { + cursor: default; +} + +.menu-list-item-buttons { + display: flex; +} + +/* Dashboard */ +.dashboard-list-C { + display: flex; + width: 100%; + flex-direction: column; +} + +.dashboard-list-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: var(--table-padding); + border-bottom: 1px solid rgb(var(--c-table-seperator)) +} + +.dashboard-list-item:hover { + background-color: rgb(240, 240, 240); +} + +@media screen and (min-width: 768px) { + .section-header{ + flex-wrap: nowrap; + } + .section-header-buttons-c.collapsable .section-header-mobile-menu { + display: none; + } + + .section-header-buttons { + display: flex; + box-shadow: none; + top: 0; + min-width: inherit; + background-color: transparent; + position: relative; + border: none; + padding: 0; + } + + .page-toast-w { + width: inherit; + max-width: 460px; + flex-shrink: 0; + } + + .page-toast-item { + width: auto; + } + + .section-header-search { + left: initial; + right: 100%; + max-width: 480px; + top: 100%; + position: absolute; + } +} + +@media screen and (min-width: 992px) { + .menu-side-w .menu-sub { + position: absolute; + left: 100%; + } + + table.table-border th, + table.table-border td { + min-width: inherit; + } + + .menu-side-w { + left: 0; + } + + .menu-side-shadow { + display: none; + pointer-events: none; + } + + main { + padding: calc(var(--sz-header) + var(--pd-main)) var(--pd-main) var(--pd-main) calc(var(--sz-side-menu) + var(--pd-main)); + flex-wrap: wrap; + } + + .section-header { + padding: var(--section-padding); + } + + .main-page main section { + width: 49%; + } + + .panel-wrapper { + max-width: 480px; + } + + .panel-wrapper.panel-wide { + max-width: 800px; + } + + .panel-wrapper.panel-full { + width: 100%; + max-width: calc(100% - 200px); + } + + .panel-wrapper.panel-right.showme { + left: calc(100% - 480px); + } + + .panel-wrapper.panel-right.panel-wide.showme { + left: calc(100% - 800px); + } + + .panel-wrapper.panel-right.panel-full.showme { + left: 200px; + } + + .form-item-half { + width: 50%; + padding-right: 16px; + } + + .table-cell-flx-row .form-item { + margin-bottom: 0; + } +} + +@media screen and (min-width: 1025px) { + .tabs-buttons-c { + overflow: visible; + } + + .tab-button { + width: auto; + margin-right: 4px; + margin-left: 0; + } + + .tab-nav-button { + display: none; + } +} + +@media screen and (min-width: 1200px) { + .menu-sub-mobile-fix { + width: initial; + min-width: 480px; + right: 0; + } + + .form-content { + column-gap: 1%; + column-count: 2; + } + + .form-inner-content-left { + width: 60%; + } + + .form-inner-content-right { + width: 39%; + margin-left: auto; + } +} + +@media screen and (min-width: 1400px) { + .main-page main section { + width: 24%; + } +} + +@media screen and (min-width: 1600px) { + .section-header h1 { + font-size: 1.25em; + } +} + +@media print { + + html, + body { + max-width: 100%; + } + + header, + footer, + .breadcrumb-wrapper, + .tabs-buttons-c, + .menu-side-w, + .section-header-buttons-c, + .ico-section-header-btn, + .form-part-title-buttons, + .ico-sort, + .list-paging-wrapper, + .panel-wrapper { + display: none !important; + } + + main { + padding: var(--pd-main) !important; + max-width: 100vw !important; + } + + .form-item.form-item-half { + width: 50% !important; + } + + .tab-content, + .table-list { + width: 100% !important; + } + + .list-wrapper { + overflow: visible; + overflow-x: visible; + width: 100%; + } + + .print .main-w { + display: none; + } + + .print-c { + width: 100%; + z-index: -1; + font-size: 16px; + } + + .print-c * { + font-size: 12pt; + } +} \ No newline at end of file diff --git a/src/assets/style/fonts.css b/src/assets/style/fonts.css new file mode 100644 index 0000000..7b40f1a --- /dev/null +++ b/src/assets/style/fonts.css @@ -0,0 +1,56 @@ +/* fonts */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(../fonts/roboto-400.woff2) format('woff2'); +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: url(../fonts/roboto-500.woff2) format('woff2'); +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(../fonts/roboto-700.woff2) format('woff2'); +} + +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: url(../fonts/roboto-900.woff2) format('woff2'); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: url(../fonts/roboto-400-italic.woff2) format('woff2'); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 500; + src: url(../fonts/roboto-500-italic.woff2) format('woff2'); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: url(../fonts/roboto-700-italic.woff2) format('woff2'); +} + +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 900; + src: url(../fonts/roboto-900-italic.woff2) format('woff2'); +} \ No newline at end of file diff --git a/src/components/DashPiyangoListe.vue b/src/components/DashPiyangoListe.vue new file mode 100644 index 0000000..e11a1ba --- /dev/null +++ b/src/components/DashPiyangoListe.vue @@ -0,0 +1,95 @@ + + diff --git a/src/components/Loading.vue b/src/components/Loading.vue new file mode 100644 index 0000000..e124736 --- /dev/null +++ b/src/components/Loading.vue @@ -0,0 +1,48 @@ + + + diff --git a/src/components/NavItem.vue b/src/components/NavItem.vue new file mode 100644 index 0000000..a4d6322 --- /dev/null +++ b/src/components/NavItem.vue @@ -0,0 +1,96 @@ + + diff --git a/src/components/NavSide.vue b/src/components/NavSide.vue new file mode 100644 index 0000000..51d33ac --- /dev/null +++ b/src/components/NavSide.vue @@ -0,0 +1,52 @@ + + diff --git a/src/components/PanelWrapper.vue b/src/components/PanelWrapper.vue new file mode 100644 index 0000000..31b9194 --- /dev/null +++ b/src/components/PanelWrapper.vue @@ -0,0 +1,59 @@ + + diff --git a/src/components/global/Breadcrumb.vue b/src/components/global/Breadcrumb.vue new file mode 100644 index 0000000..167db52 --- /dev/null +++ b/src/components/global/Breadcrumb.vue @@ -0,0 +1,17 @@ + + diff --git a/src/components/global/DataTable.vue b/src/components/global/DataTable.vue new file mode 100644 index 0000000..fd7ef8f --- /dev/null +++ b/src/components/global/DataTable.vue @@ -0,0 +1,225 @@ + + diff --git a/src/components/global/DataTablePagination.vue b/src/components/global/DataTablePagination.vue new file mode 100644 index 0000000..2228571 --- /dev/null +++ b/src/components/global/DataTablePagination.vue @@ -0,0 +1,88 @@ + + diff --git a/src/components/global/DialogItem.vue b/src/components/global/DialogItem.vue new file mode 100644 index 0000000..acc96a1 --- /dev/null +++ b/src/components/global/DialogItem.vue @@ -0,0 +1,136 @@ + + + diff --git a/src/components/global/Dialogs.vue b/src/components/global/Dialogs.vue new file mode 100644 index 0000000..27e6a36 --- /dev/null +++ b/src/components/global/Dialogs.vue @@ -0,0 +1,12 @@ + + diff --git a/src/components/global/FileListItem.vue b/src/components/global/FileListItem.vue new file mode 100644 index 0000000..b603176 --- /dev/null +++ b/src/components/global/FileListItem.vue @@ -0,0 +1,103 @@ + + diff --git a/src/components/global/FormCheckbox.vue b/src/components/global/FormCheckbox.vue new file mode 100644 index 0000000..c93c746 --- /dev/null +++ b/src/components/global/FormCheckbox.vue @@ -0,0 +1,125 @@ + + diff --git a/src/components/global/FormDate.vue b/src/components/global/FormDate.vue new file mode 100644 index 0000000..5b16332 --- /dev/null +++ b/src/components/global/FormDate.vue @@ -0,0 +1,253 @@ + + diff --git a/src/components/global/FormInput.vue b/src/components/global/FormInput.vue new file mode 100644 index 0000000..f941714 --- /dev/null +++ b/src/components/global/FormInput.vue @@ -0,0 +1,153 @@ + + diff --git a/src/components/global/FormQuill.vue b/src/components/global/FormQuill.vue new file mode 100644 index 0000000..ed4bac2 --- /dev/null +++ b/src/components/global/FormQuill.vue @@ -0,0 +1,210 @@ + + + diff --git a/src/components/global/FormRadio.vue b/src/components/global/FormRadio.vue new file mode 100644 index 0000000..c20c5c2 --- /dev/null +++ b/src/components/global/FormRadio.vue @@ -0,0 +1,128 @@ + + diff --git a/src/components/global/FormSelect.vue b/src/components/global/FormSelect.vue new file mode 100644 index 0000000..0cdf299 --- /dev/null +++ b/src/components/global/FormSelect.vue @@ -0,0 +1,393 @@ + + diff --git a/src/components/global/FormSummer.vue b/src/components/global/FormSummer.vue new file mode 100644 index 0000000..513de5c --- /dev/null +++ b/src/components/global/FormSummer.vue @@ -0,0 +1,185 @@ + + + diff --git a/src/components/global/FormTextarea.vue b/src/components/global/FormTextarea.vue new file mode 100644 index 0000000..ac08853 --- /dev/null +++ b/src/components/global/FormTextarea.vue @@ -0,0 +1,133 @@ + + diff --git a/src/components/global/IconButton.vue b/src/components/global/IconButton.vue new file mode 100644 index 0000000..0ce8cc0 --- /dev/null +++ b/src/components/global/IconButton.vue @@ -0,0 +1,42 @@ + + diff --git a/src/components/global/ListTableContent.vue b/src/components/global/ListTableContent.vue new file mode 100644 index 0000000..c75b566 --- /dev/null +++ b/src/components/global/ListTableContent.vue @@ -0,0 +1,437 @@ + + + diff --git a/src/components/global/PanelExport.vue b/src/components/global/PanelExport.vue new file mode 100644 index 0000000..4444925 --- /dev/null +++ b/src/components/global/PanelExport.vue @@ -0,0 +1,54 @@ + + diff --git a/src/components/global/PanelFilter.vue b/src/components/global/PanelFilter.vue new file mode 100644 index 0000000..a9fac63 --- /dev/null +++ b/src/components/global/PanelFilter.vue @@ -0,0 +1,123 @@ + + diff --git a/src/components/global/Tabs.vue b/src/components/global/Tabs.vue new file mode 100644 index 0000000..46081da --- /dev/null +++ b/src/components/global/Tabs.vue @@ -0,0 +1,109 @@ + + diff --git a/src/components/global/ToastItem.vue b/src/components/global/ToastItem.vue new file mode 100644 index 0000000..cf82869 --- /dev/null +++ b/src/components/global/ToastItem.vue @@ -0,0 +1,40 @@ + + diff --git a/src/components/global/Toasts.vue b/src/components/global/Toasts.vue new file mode 100644 index 0000000..0ff678c --- /dev/null +++ b/src/components/global/Toasts.vue @@ -0,0 +1,20 @@ + + diff --git a/src/components/global/dialogStore.ts b/src/components/global/dialogStore.ts new file mode 100644 index 0000000..ab09cad --- /dev/null +++ b/src/components/global/dialogStore.ts @@ -0,0 +1,22 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' + +export const useDialogStore = defineStore('dialogStore', () => { + const dialogs = reactive>({}) + + const CreateDialog = (data: Record) => { + const rnd: number = Number(Math.floor(Math.random() * 10000000000)) + + dialogs[rnd] = {} as Record + dialogs[rnd].id = rnd + dialogs[rnd].data = data + } + const CloseDialog = (id: number) => { + delete dialogs[id] + } + return { + dialogs, + CreateDialog, + CloseDialog + } +}) diff --git a/src/components/global/index.ts b/src/components/global/index.ts new file mode 100644 index 0000000..1552475 --- /dev/null +++ b/src/components/global/index.ts @@ -0,0 +1,40 @@ +import DataTable from './DataTable.vue' +import DataTablePagination from './DataTablePagination.vue' +import ListTableContent from './ListTableContent.vue' +import FormInput from './FormInput.vue' +import FormDate from './FormDate.vue' +import FormFile from './FormFile.vue' +import FormTextarea from './FormTextarea.vue' +import FormQuill from './FormQuill.vue' +import FormSummer from './FormSummer.vue' +import FormSelect from './FormSelect.vue' +import FormRadio from './FormRadio.vue' +import FormCheckbox from './FormCheckbox.vue' +import Tabs from './Tabs.vue' +import IconButton from './IconButton.vue' +import Breadcrumb from './Breadcrumb.vue' +import FileListItem from './FileListItem.vue' +import FormDisplay from './FormDisplay.vue' +import Toasts from './Toasts.vue' +import Dialogs from './Dialogs.vue' +export { + DataTable, + DataTablePagination, + ListTableContent, + FormInput, + FormDate, + FormFile, + FormTextarea, + FormQuill, + FormSummer, + FormSelect, + FormRadio, + FormCheckbox, + Tabs, + IconButton, + Breadcrumb, + FileListItem, + FormDisplay, + Toasts, + Dialogs +} diff --git a/src/components/global/toastStore.ts b/src/components/global/toastStore.ts new file mode 100644 index 0000000..aadd8db --- /dev/null +++ b/src/components/global/toastStore.ts @@ -0,0 +1,23 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' + +export const useToastStore = defineStore('toastStore', () => { + const toastTimeout = ref(5000) + const toasts = reactive>({}) + + const AddToast = (toast: string, type: string, timeout?: number) => { + const iTimeout: number = timeout || 0 + const rnd: number = Number(Math.floor(Math.random() * 10000000000)) + + toasts[rnd] = {} as Record + toasts[rnd].text = toast + toasts[rnd].timeout = iTimeout + toasts[rnd].id = rnd + toasts[rnd].type = type + } + return { + toastTimeout, + toasts, + AddToast + } +}) diff --git a/src/layouts/AdminLayout.vue b/src/layouts/AdminLayout.vue new file mode 100644 index 0000000..f5af408 --- /dev/null +++ b/src/layouts/AdminLayout.vue @@ -0,0 +1,81 @@ + + diff --git a/src/layouts/GuestLayout.vue b/src/layouts/GuestLayout.vue new file mode 100644 index 0000000..0e46841 --- /dev/null +++ b/src/layouts/GuestLayout.vue @@ -0,0 +1,11 @@ + + \ No newline at end of file diff --git a/src/layouts/admin-inc/Footer.vue b/src/layouts/admin-inc/Footer.vue new file mode 100644 index 0000000..33d22e6 --- /dev/null +++ b/src/layouts/admin-inc/Footer.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/src/layouts/admin-inc/Header.vue b/src/layouts/admin-inc/Header.vue new file mode 100644 index 0000000..5f2e143 --- /dev/null +++ b/src/layouts/admin-inc/Header.vue @@ -0,0 +1,41 @@ + + diff --git a/src/layouts/admin-inc/ProfileMenu.vue b/src/layouts/admin-inc/ProfileMenu.vue new file mode 100644 index 0000000..a488bb0 --- /dev/null +++ b/src/layouts/admin-inc/ProfileMenu.vue @@ -0,0 +1,103 @@ + + diff --git a/src/layouts/admin-inc/SideMenu.vue b/src/layouts/admin-inc/SideMenu.vue new file mode 100644 index 0000000..aab5aa8 --- /dev/null +++ b/src/layouts/admin-inc/SideMenu.vue @@ -0,0 +1,174 @@ + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..4f2ce7a --- /dev/null +++ b/src/main.ts @@ -0,0 +1,40 @@ +import '@/assets/style/default.css' +import '@/assets/style/fonts.css' + +import axios from '@/init/axios-init' + +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import * as components from '@/components/global/' +import { PDFPlugin } from 'vue3-pdfmake' + +import App from './App.vue' +import router from './router' +import $ from 'jquery' + +declare global { + interface JQuery { + summernote(options?: any): JQuery; + summernote(method: string, ...params: any[]): JQuery; + } +} + +window.$ = $ +window.jQuery = $ + +const app = createApp(App) + + +const axiosInstance = axios.create({ + withCredentials: true +}) +app.config.globalProperties.$axios = { ...axiosInstance } + +for (const key in components) { + const component = components[key as keyof typeof components] + app.component(key, component) +} +app.use(createPinia()) +app.use(PDFPlugin) +app.use(router) +app.mount('#app') diff --git a/src/module/Profil/routes/index.ts b/src/module/Profil/routes/index.ts new file mode 100644 index 0000000..d1f92f6 --- /dev/null +++ b/src/module/Profil/routes/index.ts @@ -0,0 +1,3 @@ +import Profil from './profil' + +export default [Profil] diff --git a/src/module/Profil/routes/profil.ts b/src/module/Profil/routes/profil.ts new file mode 100644 index 0000000..5ecce36 --- /dev/null +++ b/src/module/Profil/routes/profil.ts @@ -0,0 +1,10 @@ +import UyeProfil from '@/module/uyeler/views/UyeProfil.vue' + +export default { + path: '/profil', + name: 'Profil', + component: UyeProfil, + meta: { + authRequired: true + } +} diff --git a/src/module/auth/routes/forgot-password.ts b/src/module/auth/routes/forgot-password.ts new file mode 100644 index 0000000..3d455dd --- /dev/null +++ b/src/module/auth/routes/forgot-password.ts @@ -0,0 +1,10 @@ +import ForgotPassword from '@/module/auth/views/ForgotPassword.vue' + +export default { + path: '/forgot-password', + name: 'ForgotPassword', + component: ForgotPassword, + meta: { + authpage: true + } +} diff --git a/src/module/auth/routes/index.ts b/src/module/auth/routes/index.ts new file mode 100644 index 0000000..cd19939 --- /dev/null +++ b/src/module/auth/routes/index.ts @@ -0,0 +1,11 @@ +import Login from "@/module/auth/routes/login"; +import Register from "@/module/auth/routes/register"; +import ForgotPassword from "@/module/auth/routes/forgot-password"; + +export default [ + Login, + Register, + ForgotPassword +] + + diff --git a/src/module/auth/routes/login.ts b/src/module/auth/routes/login.ts new file mode 100644 index 0000000..345cb38 --- /dev/null +++ b/src/module/auth/routes/login.ts @@ -0,0 +1,10 @@ +import Login from '@/module/auth/views/Login.vue' + +export default { + path: '/login', + name: 'Login', + component: Login, + meta: { + authpage: true + } +} diff --git a/src/module/auth/routes/register.ts b/src/module/auth/routes/register.ts new file mode 100644 index 0000000..4521657 --- /dev/null +++ b/src/module/auth/routes/register.ts @@ -0,0 +1,10 @@ +import Register from '@/module/auth/views/Register.vue' + +export default { + path: '/register', + name: 'Register', + component: Register, + meta: { + authpage: true + } +} diff --git a/src/module/auth/services/authRoleService.ts b/src/module/auth/services/authRoleService.ts new file mode 100644 index 0000000..e347e96 --- /dev/null +++ b/src/module/auth/services/authRoleService.ts @@ -0,0 +1,17 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useAuthStore } from '../stores/authStore' + +export const useAppUserService = defineStore('appUserService', () => { + const dataStore = useDataStore() + const authStore = useAuthStore() + + const GetAAuthRoleList = async () => { + if (authStore.rolesList.length === 0) { + let data = await dataStore.dataGet('Auth/rolelistesi') + authStore.rolesList = data + } + } + + return {GetAAuthRoleList} +}) diff --git a/src/module/auth/services/authService.ts b/src/module/auth/services/authService.ts new file mode 100644 index 0000000..0d8fe98 --- /dev/null +++ b/src/module/auth/services/authService.ts @@ -0,0 +1,17 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useAuthStore } from '../stores/authStore' + +export const useAppService = defineStore('appService', () => { + const dataStore = useDataStore() + const authStore = useAuthStore() + + const GetAAuthRoleList = async () => { + if (authStore.rolesList.length === 0) { + let data = await dataStore.dataGet('Auth/rolelistesi') + authStore.rolesList = data + } + } + + return {GetAAuthRoleList} +}) diff --git a/src/module/auth/stores/authStore.ts b/src/module/auth/stores/authStore.ts new file mode 100644 index 0000000..1dfaa24 --- /dev/null +++ b/src/module/auth/stores/authStore.ts @@ -0,0 +1,12 @@ +import { defineStore } from 'pinia' +import { ref,reactive } from 'vue' + +export const useAuthStore = defineStore('authStore', () => { + const loginData = reactive>({ username: '', password: '' }) + const safeLoginData = reactive>({}) + const rolesList = ref[]>([]) + + Object.assign(safeLoginData, loginData) + + return { loginData, safeLoginData, rolesList } +}) diff --git a/src/module/auth/stores/authValidationStore.ts b/src/module/auth/stores/authValidationStore.ts new file mode 100644 index 0000000..ba157c7 --- /dev/null +++ b/src/module/auth/stores/authValidationStore.ts @@ -0,0 +1,46 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useAuthStore } from './authStore' +import { useValidationStore } from '@/stores/validationStore' + +export const useAuthValidationStore = defineStore('authValidationStore', () => { + const authStore = useAuthStore() + const validationStore = useValidationStore() + + const isFormValid = ref(true) + const isLoginMessage = ref(false) + const loginMessageType = ref('success') + const loginMessage = ref('') + const registerMessage = ref('') + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + authStore.loginData, + invalidTexts, + 'username', + 'Kullanıcı adı alanını doldurmalısınız. Örn: isim@alanadi.td' + ) + validationStore.IsFieldEmpty( + authStore.loginData, + invalidTexts, + 'password', + 'Lütfen şifrenizi giriniz.' + ) + + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + isFormValid, + invalidTexts, + isLoginMessage, + loginMessageType, + loginMessage, + registerMessage, + FormCheck + } +}) diff --git a/src/module/auth/views/ForgotPassword.vue b/src/module/auth/views/ForgotPassword.vue new file mode 100644 index 0000000..9a6cec7 --- /dev/null +++ b/src/module/auth/views/ForgotPassword.vue @@ -0,0 +1,75 @@ + + diff --git a/src/module/auth/views/Login.vue b/src/module/auth/views/Login.vue new file mode 100644 index 0000000..c6d35b0 --- /dev/null +++ b/src/module/auth/views/Login.vue @@ -0,0 +1,95 @@ + + diff --git a/src/module/auth/views/Register.vue b/src/module/auth/views/Register.vue new file mode 100644 index 0000000..3164495 --- /dev/null +++ b/src/module/auth/views/Register.vue @@ -0,0 +1,427 @@ + + diff --git a/src/module/ayarlar/routes/index.ts b/src/module/ayarlar/routes/index.ts new file mode 100644 index 0000000..0639fcb --- /dev/null +++ b/src/module/ayarlar/routes/index.ts @@ -0,0 +1,5 @@ +import settings from "@/module/ayarlar/routes/settings"; + +export default [ + settings +] \ No newline at end of file diff --git a/src/module/ayarlar/routes/settings.ts b/src/module/ayarlar/routes/settings.ts new file mode 100644 index 0000000..a805318 --- /dev/null +++ b/src/module/ayarlar/routes/settings.ts @@ -0,0 +1,10 @@ +import Settings from "@/module/ayarlar/views/Settings.vue" + +export default { + path: "/settings", + name: 'Settings', + component: Settings, + meta: { + authRequired: true + } +} \ No newline at end of file diff --git a/src/module/ayarlar/service/index.ts b/src/module/ayarlar/service/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/module/ayarlar/stores/index.ts b/src/module/ayarlar/stores/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/module/ayarlar/views/Settings.vue b/src/module/ayarlar/views/Settings.vue new file mode 100644 index 0000000..0127c22 --- /dev/null +++ b/src/module/ayarlar/views/Settings.vue @@ -0,0 +1,9 @@ + + \ No newline at end of file diff --git a/src/module/cekilisler/components/TabPiyangoBilgileri.vue b/src/module/cekilisler/components/TabPiyangoBilgileri.vue new file mode 100644 index 0000000..a550505 --- /dev/null +++ b/src/module/cekilisler/components/TabPiyangoBilgileri.vue @@ -0,0 +1,63 @@ + + diff --git a/src/module/cekilisler/components/TabPiyangoBilgileriDisplay.vue b/src/module/cekilisler/components/TabPiyangoBilgileriDisplay.vue new file mode 100644 index 0000000..afd51e3 --- /dev/null +++ b/src/module/cekilisler/components/TabPiyangoBilgileriDisplay.vue @@ -0,0 +1,47 @@ + + diff --git a/src/module/cekilisler/components/TabPiyangoItiraz.vue b/src/module/cekilisler/components/TabPiyangoItiraz.vue new file mode 100644 index 0000000..40e144c --- /dev/null +++ b/src/module/cekilisler/components/TabPiyangoItiraz.vue @@ -0,0 +1,109 @@ + + diff --git a/src/module/cekilisler/components/TabPiyangoLoglari.vue b/src/module/cekilisler/components/TabPiyangoLoglari.vue new file mode 100644 index 0000000..e0373a7 --- /dev/null +++ b/src/module/cekilisler/components/TabPiyangoLoglari.vue @@ -0,0 +1,40 @@ + + diff --git a/src/module/cekilisler/components/TabPiyangoOnayDurumu.vue b/src/module/cekilisler/components/TabPiyangoOnayDurumu.vue new file mode 100644 index 0000000..cb13c72 --- /dev/null +++ b/src/module/cekilisler/components/TabPiyangoOnayDurumu.vue @@ -0,0 +1,22 @@ + + diff --git a/src/module/cekilisler/components/TabPiyangoOnayDurumuUser.vue b/src/module/cekilisler/components/TabPiyangoOnayDurumuUser.vue new file mode 100644 index 0000000..86a94db --- /dev/null +++ b/src/module/cekilisler/components/TabPiyangoOnayDurumuUser.vue @@ -0,0 +1,24 @@ + + diff --git a/src/module/cekilisler/components/TabPiyangoYetkilendirme.vue b/src/module/cekilisler/components/TabPiyangoYetkilendirme.vue new file mode 100644 index 0000000..095f468 --- /dev/null +++ b/src/module/cekilisler/components/TabPiyangoYetkilendirme.vue @@ -0,0 +1,16 @@ + + diff --git a/src/module/cekilisler/components/content/LotteryStates.vue b/src/module/cekilisler/components/content/LotteryStates.vue new file mode 100644 index 0000000..5e79286 --- /dev/null +++ b/src/module/cekilisler/components/content/LotteryStates.vue @@ -0,0 +1,113 @@ + + diff --git a/src/module/cekilisler/components/content/PiyangoBilgileriDisplayContent.vue b/src/module/cekilisler/components/content/PiyangoBilgileriDisplayContent.vue new file mode 100644 index 0000000..238ca25 --- /dev/null +++ b/src/module/cekilisler/components/content/PiyangoBilgileriDisplayContent.vue @@ -0,0 +1,222 @@ + + diff --git a/src/module/cekilisler/components/display/FormPiyangoAraciUyeBilgileriDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoAraciUyeBilgileriDisplay.vue new file mode 100644 index 0000000..5823bb6 --- /dev/null +++ b/src/module/cekilisler/components/display/FormPiyangoAraciUyeBilgileriDisplay.vue @@ -0,0 +1,31 @@ + + diff --git a/src/module/cekilisler/components/display/FormPiyangoBilgileriDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoBilgileriDisplay.vue new file mode 100644 index 0000000..a9fc3d1 --- /dev/null +++ b/src/module/cekilisler/components/display/FormPiyangoBilgileriDisplay.vue @@ -0,0 +1,140 @@ + + diff --git a/src/module/cekilisler/components/display/FormPiyangoDocumentsDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoDocumentsDisplay.vue new file mode 100644 index 0000000..9d5549e --- /dev/null +++ b/src/module/cekilisler/components/display/FormPiyangoDocumentsDisplay.vue @@ -0,0 +1,40 @@ + + diff --git a/src/module/cekilisler/components/display/FormPiyangoDuzenleyenBilgileriDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoDuzenleyenBilgileriDisplay.vue new file mode 100644 index 0000000..1769abf --- /dev/null +++ b/src/module/cekilisler/components/display/FormPiyangoDuzenleyenBilgileriDisplay.vue @@ -0,0 +1,94 @@ + + diff --git a/src/module/cekilisler/components/display/FormPiyangoIkramiyeListesiDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoIkramiyeListesiDisplay.vue new file mode 100644 index 0000000..6dbb6f8 --- /dev/null +++ b/src/module/cekilisler/components/display/FormPiyangoIkramiyeListesiDisplay.vue @@ -0,0 +1,116 @@ + + diff --git a/src/module/cekilisler/components/display/FormPiyangoIrtibatBilgileriDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoIrtibatBilgileriDisplay.vue new file mode 100644 index 0000000..200f615 --- /dev/null +++ b/src/module/cekilisler/components/display/FormPiyangoIrtibatBilgileriDisplay.vue @@ -0,0 +1,54 @@ + + diff --git a/src/module/cekilisler/components/display/FormPiyangoMecraDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoMecraDisplay.vue new file mode 100644 index 0000000..b5d321b --- /dev/null +++ b/src/module/cekilisler/components/display/FormPiyangoMecraDisplay.vue @@ -0,0 +1,29 @@ + + diff --git a/src/module/cekilisler/components/display/FormPiyangoPicturesDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoPicturesDisplay.vue new file mode 100644 index 0000000..5efe4e7 --- /dev/null +++ b/src/module/cekilisler/components/display/FormPiyangoPicturesDisplay.vue @@ -0,0 +1,39 @@ + + diff --git a/src/module/cekilisler/components/display/FormPiyangoTeminatDurumuDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoTeminatDurumuDisplay.vue new file mode 100644 index 0000000..cbfee32 --- /dev/null +++ b/src/module/cekilisler/components/display/FormPiyangoTeminatDurumuDisplay.vue @@ -0,0 +1,102 @@ + + diff --git a/src/module/cekilisler/components/display/FormPiyangoYardimAmacliDisplay.vue b/src/module/cekilisler/components/display/FormPiyangoYardimAmacliDisplay.vue new file mode 100644 index 0000000..a0cc28a --- /dev/null +++ b/src/module/cekilisler/components/display/FormPiyangoYardimAmacliDisplay.vue @@ -0,0 +1,127 @@ + + diff --git a/src/module/cekilisler/components/display/PiyangoOnizlemeDisplay.vue b/src/module/cekilisler/components/display/PiyangoOnizlemeDisplay.vue new file mode 100644 index 0000000..7752648 --- /dev/null +++ b/src/module/cekilisler/components/display/PiyangoOnizlemeDisplay.vue @@ -0,0 +1,705 @@ + + diff --git a/src/module/cekilisler/components/display/PiyangoYardimAmacliOnizlemeDisplay.vue b/src/module/cekilisler/components/display/PiyangoYardimAmacliOnizlemeDisplay.vue new file mode 100644 index 0000000..87b22da --- /dev/null +++ b/src/module/cekilisler/components/display/PiyangoYardimAmacliOnizlemeDisplay.vue @@ -0,0 +1,642 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoBilgileri.vue b/src/module/cekilisler/components/form/FormPiyangoBilgileri.vue new file mode 100644 index 0000000..72b53bd --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoBilgileri.vue @@ -0,0 +1,645 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoDocuments.vue b/src/module/cekilisler/components/form/FormPiyangoDocuments.vue new file mode 100644 index 0000000..c8ab477 --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoDocuments.vue @@ -0,0 +1,123 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoIrtibatBilgileri.vue b/src/module/cekilisler/components/form/FormPiyangoIrtibatBilgileri.vue new file mode 100644 index 0000000..addaf89 --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoIrtibatBilgileri.vue @@ -0,0 +1,138 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoMecra.vue b/src/module/cekilisler/components/form/FormPiyangoMecra.vue new file mode 100644 index 0000000..1b336f1 --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoMecra.vue @@ -0,0 +1,67 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoOnay.vue b/src/module/cekilisler/components/form/FormPiyangoOnay.vue new file mode 100644 index 0000000..3ebf7eb --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoOnay.vue @@ -0,0 +1,66 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoOnayKisiler.vue b/src/module/cekilisler/components/form/FormPiyangoOnayKisiler.vue new file mode 100644 index 0000000..c3db471 --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoOnayKisiler.vue @@ -0,0 +1,38 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoOnayLog.vue b/src/module/cekilisler/components/form/FormPiyangoOnayLog.vue new file mode 100644 index 0000000..764c4aa --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoOnayLog.vue @@ -0,0 +1,88 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoPictures.vue b/src/module/cekilisler/components/form/FormPiyangoPictures.vue new file mode 100644 index 0000000..c07f792 --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoPictures.vue @@ -0,0 +1,135 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoTeminatDurumu.vue b/src/module/cekilisler/components/form/FormPiyangoTeminatDurumu.vue new file mode 100644 index 0000000..76eeeff --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoTeminatDurumu.vue @@ -0,0 +1,135 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoUserOnayaGonder.vue b/src/module/cekilisler/components/form/FormPiyangoUserOnayaGonder.vue new file mode 100644 index 0000000..6f50477 --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoUserOnayaGonder.vue @@ -0,0 +1,44 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoYardimAmacli.vue b/src/module/cekilisler/components/form/FormPiyangoYardimAmacli.vue new file mode 100644 index 0000000..5d1873a --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoYardimAmacli.vue @@ -0,0 +1,147 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoYetkilendirme.vue b/src/module/cekilisler/components/form/FormPiyangoYetkilendirme.vue new file mode 100644 index 0000000..c09ad0e --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoYetkilendirme.vue @@ -0,0 +1,255 @@ + + diff --git a/src/module/cekilisler/components/form/FormPiyangoYetkilendirmeLog.vue b/src/module/cekilisler/components/form/FormPiyangoYetkilendirmeLog.vue new file mode 100644 index 0000000..524b28b --- /dev/null +++ b/src/module/cekilisler/components/form/FormPiyangoYetkilendirmeLog.vue @@ -0,0 +1,40 @@ + + diff --git a/src/module/cekilisler/components/panel/PanelPiyangoDocument.vue b/src/module/cekilisler/components/panel/PanelPiyangoDocument.vue new file mode 100644 index 0000000..742454d --- /dev/null +++ b/src/module/cekilisler/components/panel/PanelPiyangoDocument.vue @@ -0,0 +1,20 @@ + + diff --git a/src/module/cekilisler/components/panel/PanelPiyangoIkramiye.vue b/src/module/cekilisler/components/panel/PanelPiyangoIkramiye.vue new file mode 100644 index 0000000..35fd2e0 --- /dev/null +++ b/src/module/cekilisler/components/panel/PanelPiyangoIkramiye.vue @@ -0,0 +1,78 @@ + + diff --git a/src/module/cekilisler/components/panel/PanelPiyangoItiraz.vue b/src/module/cekilisler/components/panel/PanelPiyangoItiraz.vue new file mode 100644 index 0000000..6c41d37 --- /dev/null +++ b/src/module/cekilisler/components/panel/PanelPiyangoItiraz.vue @@ -0,0 +1,64 @@ + + diff --git a/src/module/cekilisler/components/panel/PanelPiyangoKatilimci.vue b/src/module/cekilisler/components/panel/PanelPiyangoKatilimci.vue new file mode 100644 index 0000000..96a9c96 --- /dev/null +++ b/src/module/cekilisler/components/panel/PanelPiyangoKatilimci.vue @@ -0,0 +1,419 @@ + + diff --git a/src/module/cekilisler/components/panel/PanelPiyangoMecra.vue b/src/module/cekilisler/components/panel/PanelPiyangoMecra.vue new file mode 100644 index 0000000..4b7e501 --- /dev/null +++ b/src/module/cekilisler/components/panel/PanelPiyangoMecra.vue @@ -0,0 +1,14 @@ + + diff --git a/src/module/cekilisler/components/panel/PanelPiyangoOnizleme.vue b/src/module/cekilisler/components/panel/PanelPiyangoOnizleme.vue new file mode 100644 index 0000000..0ba6a70 --- /dev/null +++ b/src/module/cekilisler/components/panel/PanelPiyangoOnizleme.vue @@ -0,0 +1,24 @@ + + diff --git a/src/module/cekilisler/components/panel/PanelPiyangoPictures.vue b/src/module/cekilisler/components/panel/PanelPiyangoPictures.vue new file mode 100644 index 0000000..a7058cc --- /dev/null +++ b/src/module/cekilisler/components/panel/PanelPiyangoPictures.vue @@ -0,0 +1,27 @@ + + diff --git a/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumu.vue b/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumu.vue new file mode 100644 index 0000000..d3c028e --- /dev/null +++ b/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumu.vue @@ -0,0 +1,124 @@ + + diff --git a/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumuDisplay.vue b/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumuDisplay.vue new file mode 100644 index 0000000..fd32f60 --- /dev/null +++ b/src/module/cekilisler/components/panel/PanelPiyangoTeminatDurumuDisplay.vue @@ -0,0 +1,90 @@ + + diff --git a/src/module/cekilisler/components/panel/PanelPiyangoYardimAmacliOnizleme.vue b/src/module/cekilisler/components/panel/PanelPiyangoYardimAmacliOnizleme.vue new file mode 100644 index 0000000..d990446 --- /dev/null +++ b/src/module/cekilisler/components/panel/PanelPiyangoYardimAmacliOnizleme.vue @@ -0,0 +1,23 @@ + + diff --git a/src/module/cekilisler/routes/index.ts b/src/module/cekilisler/routes/index.ts new file mode 100644 index 0000000..f2f0fae --- /dev/null +++ b/src/module/cekilisler/routes/index.ts @@ -0,0 +1,5 @@ +import piyangoListe from '@/module/cekilisler/routes/piyango-liste' +import piyangoYeni from '@/module/cekilisler/routes/piyango-yeni' +import piyangoDetay from '@/module/cekilisler/routes/piyango-detay' + +export default [piyangoListe, piyangoYeni, piyangoDetay] diff --git a/src/module/cekilisler/routes/piyango-detay.ts b/src/module/cekilisler/routes/piyango-detay.ts new file mode 100644 index 0000000..c5386c4 --- /dev/null +++ b/src/module/cekilisler/routes/piyango-detay.ts @@ -0,0 +1,10 @@ +import PiyangoDetay from '@/module/cekilisler/views/PiyangoDetay.vue' + +export default { + path: '/piyangolar/detay/:piyangoId', + name: 'PiyangoDetay', + component: PiyangoDetay, + meta: { + authRequired: true + } +} diff --git a/src/module/cekilisler/routes/piyango-liste.ts b/src/module/cekilisler/routes/piyango-liste.ts new file mode 100644 index 0000000..834e752 --- /dev/null +++ b/src/module/cekilisler/routes/piyango-liste.ts @@ -0,0 +1,10 @@ +import CekilisListe from '@/module/cekilisler/views/PiyangoListe.vue' + +export default { + path: '/piyangolar/piyango-listesi', + name: 'PiyangoListe', + component: CekilisListe, + meta: { + authRequired: true + } +} diff --git a/src/module/cekilisler/routes/piyango-yeni.ts b/src/module/cekilisler/routes/piyango-yeni.ts new file mode 100644 index 0000000..4398544 --- /dev/null +++ b/src/module/cekilisler/routes/piyango-yeni.ts @@ -0,0 +1,10 @@ +import PiyangoYeni from '@/module/cekilisler/views/PiyangoYeni.vue' + +export default { + path: '/piyangolar/yeni-piyango', + name: 'PiyangoYeni', + component: PiyangoYeni, + meta: { + authRequired: true + } +} diff --git a/src/module/cekilisler/service/piyangoDocumentService.ts b/src/module/cekilisler/service/piyangoDocumentService.ts new file mode 100644 index 0000000..d5b082f --- /dev/null +++ b/src/module/cekilisler/service/piyangoDocumentService.ts @@ -0,0 +1,69 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { usePiyangoStore } from '../stores/piyangoStore' +import { usePiyangoDocumentStore } from '../stores/piyangoDocumentStore' +import { usePiyangoDocumentValidationStore } from '../validation/piyangoDocumentValidationStore' + +export const usePiyangoDocumentService = defineStore('piyangoDocumentService', () => { + const dataStore = useDataStore() + const piyangoStore = usePiyangoStore() + const piyangoDocumentStore = usePiyangoDocumentStore() + const piyangoDocumentValidationStore = usePiyangoDocumentValidationStore() + + const GetDocumentList = async () => { + piyangoDocumentStore.piyangoDocumentsList.splice( + 0, + piyangoDocumentStore.piyangoDocumentsList.length + ) + + let dt = await dataStore.dataGet('Dokuman/Cekilis/' + piyangoStore.selectedLottery,{ + params: { + pageSize: 50 + } + }) + + if (dt !== 'errorfalse') { + piyangoDocumentStore.piyangoDocumentsList.splice( + 0, + piyangoDocumentStore.piyangoDocumentsList.length, + ...dt.data + ) + } + setTimeout(() => { + piyangoDocumentStore.loaded = true + }, 30) + } + + const SaveDocument = async () => { + if (piyangoDocumentValidationStore.FormCheck()) { + const formData = new FormData() + formData.append('dosya', piyangoDocumentStore.piyangoDocumentForm.dosya) + formData.append('dokumanAdi', piyangoDocumentStore.piyangoDocumentForm.dokumanAdi) + formData.append('cekilisId', String(piyangoStore.selectedLottery)) + let dt: any + + if (!piyangoDocumentStore.isUpdate) { + dt = await dataStore.dataPost('Dokuman/', { + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }) + } else { + dt = await dataStore.dataPut( + 'Dokuman/' + piyangoDocumentStore.piyangoDocumentForm.id, + { + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + } + ) + } + if (dt !== 'errorfalse') { + await GetDocumentList() + piyangoDocumentStore.documentPanel = false + piyangoDocumentStore.isUpdate = false + } + } else { + piyangoDocumentValidationStore.isFormValid = true + } + } + return { GetDocumentList, SaveDocument } +}) diff --git a/src/module/cekilisler/service/piyangoItirazService.ts b/src/module/cekilisler/service/piyangoItirazService.ts new file mode 100644 index 0000000..565acef --- /dev/null +++ b/src/module/cekilisler/service/piyangoItirazService.ts @@ -0,0 +1,54 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { usePiyangoStore } from '../stores/piyangoStore' +import { usePiyangoItirazStore } from '../stores/piyangoItirazStore' +import { usePiyangoItirazValidationStore } from '../validation/piyangoItirazValidationStore' + +export const usePiyangoItirazService = defineStore('piyangoItirazService', () => { + const dataStore = useDataStore() + const piyangoStore = usePiyangoStore() + const piyangoItirazStore = usePiyangoItirazStore() + const piyangoItirazValidationStore = usePiyangoItirazValidationStore() + + const SaveItiraz = async () => { + if (piyangoItirazValidationStore.FormCheck()) { + let data: any + const formData = new FormData() + formData.append('itirazTarihi', piyangoItirazStore.piyangoItirazForm.itirazTarihi) + formData.append('itirazEden', piyangoItirazStore.piyangoItirazForm.itirazEden) + formData.append('aciklama', piyangoItirazStore.piyangoItirazForm.aciklama) + formData.append('durum', piyangoItirazStore.piyangoItirazForm.durum) + formData.append('dosya', piyangoItirazStore.piyangoItirazForm.dosya) + formData.append('cekilisId', String(piyangoStore.selectedLottery)) + formData.append('surecTipiId', piyangoItirazStore.piyangoItirazForm.surecTipiId) + + if (!piyangoItirazStore.isUpdate) { + data = await dataStore.dataPost('Itiraz', { + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) + } else { + data = await dataStore.dataPut( + 'Itiraz/' + piyangoItirazStore.piyangoItirazForm.id, + { + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + } + ) + } + + if (data !== 'errorfalse') { + piyangoItirazStore.refreshList = true + piyangoItirazStore.itirazPanel = false + piyangoItirazValidationStore.formChanged = false + } + } else { + piyangoItirazValidationStore.isFormValid = true + } + } + return { SaveItiraz } +}) diff --git a/src/module/cekilisler/service/piyangoMecraService.ts b/src/module/cekilisler/service/piyangoMecraService.ts new file mode 100644 index 0000000..e819fea --- /dev/null +++ b/src/module/cekilisler/service/piyangoMecraService.ts @@ -0,0 +1,50 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { usePiyangoStore } from '../stores/piyangoStore' +import { usePiyangoMecraStore } from '../stores/piyangoMecraStore' +import { usePiyangoMecraValidationStore } from '../validation/piyangoMecraValidationStore' + +export const usePiyangoMecraService = defineStore('piyangoMecraService', () => { + const dataStore = useDataStore() + const piyangoStore = usePiyangoStore() + const piyangoMecraStore = usePiyangoMecraStore() + const piyangoMecraValidationStore = usePiyangoMecraValidationStore() + + const GetAllMecralar = async () => { + let data: Record | any = await dataStore.dataGet( + 'Mecra/Cekilis/' + piyangoStore.selectedLottery + '?pageNumber=0' + ) + + if (data !== 'errorfalse') { + piyangoMecraStore.piyangoAllMecraData = data.data + } + } + + const SaveMecra = async () => { + if (piyangoMecraValidationStore.FormCheck()) { + let dt: any + dataStore.panelData.yayinlanacagiTarih = new Date( + dataStore.panelData.yayinlanacagiTarih + ) + if (!piyangoMecraStore.isUpdate) { + piyangoMecraStore.piyangoMecraForm.cekilisId = piyangoStore.selectedLottery + dt = await dataStore.dataPost('Mecra', { + data: piyangoMecraStore.piyangoMecraForm + }) + } else { + dt = await dataStore.dataPut('Mecra/' + piyangoMecraStore.piyangoMecraForm.id, { + data: piyangoMecraStore.piyangoMecraForm + }) + } + if (dt !== 'errorfalse') { + piyangoMecraStore.refreshList = true + piyangoMecraStore.isUpdate = false + piyangoMecraStore.mecraPanel = false + } + } else { + piyangoMecraValidationStore.isFormValid = true + } + } + + return { GetAllMecralar, SaveMecra } +}) diff --git a/src/module/cekilisler/service/piyangoOnayService.ts b/src/module/cekilisler/service/piyangoOnayService.ts new file mode 100644 index 0000000..f4dd8c2 --- /dev/null +++ b/src/module/cekilisler/service/piyangoOnayService.ts @@ -0,0 +1,50 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { usePiyangoStore } from '../stores/piyangoStore' +import { usePiyangoOnayStore } from '../stores/piyangoOnayStore' +import { usePiyangoOnayValidationStore } from '../validation/piyangoOnayValidationStore' +import { useUsersStore } from '@/stores/usersStore' + +export const usePiyangoOnayService = defineStore('piyangoOnayService', () => { + const dataStore = useDataStore() + const piyangoStore = usePiyangoStore() + const piyangoOnayStore = usePiyangoOnayStore() + const piyangoOnayValidationStore = usePiyangoOnayValidationStore() + const usersStore = useUsersStore() + + const SaveOnayDurum = async () => { + if (piyangoOnayValidationStore.FormCheck()) { + piyangoOnayStore.loaded = false + let form: any + let dataForm = new FormData() + dataForm.append( + 'onayDurumuIslemTipiId', + piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId + ) + dataForm.append('onayCekilisId', String(piyangoStore.selectedLottery)) + dataForm.append('kisiId', String(usersStore.userId)) + dataForm.append('file', piyangoOnayStore.piyangoOnayForm.file) + dataForm.append('aciklama', piyangoOnayStore.piyangoOnayForm.aciklama) + + form = await dataStore.dataPost('OnayDurumu/', { + data: dataForm, + headers: { 'Content-Type': 'multipart/form-data' }, + toast: { toast: 'Onay durumu başarıyla kaydedildi', type: 'success' } + }) + + if (form !== 'errorfalse') { + piyangoOnayValidationStore.formChanged = false + piyangoStore.lotteryApprove = + piyangoOnayStore.piyangoOnayForm.onayDurumuIslemTipiId + piyangoOnayStore.refreshList = true + piyangoOnayStore.ResetForm() + setTimeout(() => { + piyangoOnayStore.loaded = true + }, 10) + } + } else { + piyangoOnayValidationStore.isFormValid = true + } + } + return { SaveOnayDurum } +}) diff --git a/src/module/cekilisler/service/piyangoServices.ts b/src/module/cekilisler/service/piyangoServices.ts new file mode 100644 index 0000000..6ef4a7b --- /dev/null +++ b/src/module/cekilisler/service/piyangoServices.ts @@ -0,0 +1,81 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { usePiyangoDataStore } from '../stores/piyangoDataStore' +import { useUsersStore } from '@/stores/usersStore' + +export const usePiyangoServices = defineStore('piyangoServices', () => { + const dataStore = useDataStore() + const piyangoDataStore = usePiyangoDataStore() + const usersStore = useUsersStore() + + const RemoveIncelemeBekleniyor = () => { + let ind = piyangoDataStore.piyangoOnayDurumlari.findIndex((p) => p.id === 8) + if (ind >= 0) piyangoDataStore.piyangoOnayDurumlari.splice(ind, 1) + } + + const GetKatilimciTeslimYontemiList = async () => { + if (piyangoDataStore.katilimciTeslimYontemi.length === 0) { + piyangoDataStore.katilimciTeslimYontemi = await dataStore.dataGet( + 'KatilimciListesiTeslimYontemi' + ) + } + } + + const GetCekilisYontemiList = async () => { + if (piyangoDataStore.cekilisYontemi.length === 0) { + let data = await dataStore.dataGet('CekilisYontemi') + piyangoDataStore.cekilisYontemi = data.data + } + } + + const GetParaBirimleri = async () => { + if (piyangoDataStore.paraBirimleri.length === 0) { + let data = await dataStore.dataGet('ParaBirimi') + piyangoDataStore.paraBirimleri = data + } + } + + const GetPiyangoAmaclariList = async () => { + if (piyangoDataStore.piyangoAmaclari.length === 0) { + let data = await dataStore.dataGet('PiyangoAmac') + piyangoDataStore.piyangoAmaclari = data + } + } + + const GetPiyangoOnayDurumList = async () => { + if (piyangoDataStore.piyangoOnayDurumlari.length === 0) { + let data = await dataStore.dataGet('OnayDurumuIslemTipi') + data.sort((a: Record, b: Record) => a.order - b.order) + piyangoDataStore.piyangoOnayDurumlari = data + if (usersStore.isPanelUser) RemoveIncelemeBekleniyor() + } + } + const GetPiyangoTeminatDurumList = async () => { + if (piyangoDataStore.piyangoTeminatDurumlari.length === 0) { + let data = await dataStore.dataGet('TeminantStates/Durumlar') + piyangoDataStore.piyangoTeminatDurumlari = data + } + } + const GetPiyangoTeminatTurleriList = async () => { + if (piyangoDataStore.piyangoTeminatTurleri.length === 0) { + let data = await dataStore.dataGet('TeminantStates/TeminantChildType') + piyangoDataStore.piyangoTeminatTurleri = data + } + } + const GetPiyangoTeminatParaBirimleriList = async () => { + if (piyangoDataStore.piyangoTeminatParaBirimleri.length === 0) { + let data = await dataStore.dataGet('TeminantStates/TeminatParentType') + piyangoDataStore.piyangoTeminatParaBirimleri = data + } + } + return { + GetKatilimciTeslimYontemiList, + GetCekilisYontemiList, + GetParaBirimleri, + GetPiyangoAmaclariList, + GetPiyangoOnayDurumList, + GetPiyangoTeminatDurumList, + GetPiyangoTeminatTurleriList, + GetPiyangoTeminatParaBirimleriList + } +}) diff --git a/src/module/cekilisler/service/piyangoYardimAmacliService.ts b/src/module/cekilisler/service/piyangoYardimAmacliService.ts new file mode 100644 index 0000000..3c49c5a --- /dev/null +++ b/src/module/cekilisler/service/piyangoYardimAmacliService.ts @@ -0,0 +1,60 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { usePiyangoStore } from '../stores/piyangoStore' +import { usePiyangoYardimAmacliStore } from '../stores/piyangoYardimAmacliStore' +import { usePiyangoYardimAmacliValidationStore } from '../validation/piyangoYardimAmacliValidationStore' + +export const usePiyangoYardimAmacliService = defineStore( + 'piyangoYardimAmacliService', + () => { + const dataStore = useDataStore() + const piyangoStore = usePiyangoStore() + const piyangoYardimAmacliStore = usePiyangoYardimAmacliStore() + const piyangoYardimAmacliValidationStore = usePiyangoYardimAmacliValidationStore() + + const GetYardimAmacliData = async () => { + piyangoYardimAmacliStore.loaded = false + piyangoYardimAmacliStore.EmptyFormData() + + let data = await dataStore.dataGet( + 'yardimbilgi/cekilisIdyegoreobje/' + piyangoStore.selectedLottery + ) + if (data !== 'errorfalse') { + piyangoYardimAmacliStore.CreateBiletTable() + Object.assign(piyangoYardimAmacliStore.piyangoYardimAmacliFormData, data) + Object.assign( + piyangoYardimAmacliStore.piyangoYardimAmacliServerFormData, + piyangoYardimAmacliStore.piyangoYardimAmacliFormData + ) + if (data === '') piyangoYardimAmacliStore.isNew = true + else piyangoYardimAmacliStore.isNew = false + setTimeout(() => { + piyangoYardimAmacliStore.loaded = true + }, 30) + } + } + + const SaveYardimAmacliForm = async () => { + if (piyangoYardimAmacliValidationStore.FormCheck()) { + let form: any + if (piyangoYardimAmacliStore.isNew) { + form = await dataStore.dataPost('yardimbilgi/', { + data: piyangoYardimAmacliStore.piyangoYardimAmacliFormData + }) + } else { + form = await dataStore.dataPut('yardimbilgi/' + piyangoYardimAmacliStore.piyangoYardimAmacliFormData.id, { + data: piyangoYardimAmacliStore.piyangoYardimAmacliFormData + }) + } + if (form !== 'errorfalse') { + piyangoYardimAmacliValidationStore.formChanged = false + piyangoYardimAmacliStore.loaded = false + GetYardimAmacliData() + } + } else { + piyangoYardimAmacliValidationStore.isFormValid = true + } + } + return { GetYardimAmacliData, SaveYardimAmacliForm } + } +) diff --git a/src/module/cekilisler/service/signalrService.ts b/src/module/cekilisler/service/signalrService.ts new file mode 100644 index 0000000..446bea6 --- /dev/null +++ b/src/module/cekilisler/service/signalrService.ts @@ -0,0 +1,34 @@ +import * as signalR from "@microsoft/signalr"; +import { v4 as uuidv4 } from "uuid"; + +let connection: signalR.HubConnection; +let connectionId = ""; + +export const connectToHub = async () => { + connection = new signalR.HubConnectionBuilder() + .withUrl("http://panel.cekilisevi.gov.tr:5001/uploadHub", { + withCredentials: false // Bu zorunlu, yoksa cookie vs gönderilmez + }) // backend adresine göre düzenle + .withAutomaticReconnect() + .build(); + + await connection.start(); + connectionId = connection.connectionId || uuidv4(); // SignalR id'si ya da frontend'de de guid üretilebilir + return connectionId; +}; + +export const onProgress = (callback: (data: any) => void) => { + connection.on("ReceiveProgress", callback); +}; + +export const onInsertProgress = (callback: (data: any) => void) => { + connection.on("ReceiveInsertProgress", callback); +}; + +export const onCompleted = (callback: (data: any) => void) => { + connection.on("ReceiveCompleted", callback); +}; + +export const onError = (callback: (data: any) => void) => { + connection.on("ReceiveError", callback); +}; \ No newline at end of file diff --git a/src/module/cekilisler/stores/piyangoContactStore.ts b/src/module/cekilisler/stores/piyangoContactStore.ts new file mode 100644 index 0000000..342eb62 --- /dev/null +++ b/src/module/cekilisler/stores/piyangoContactStore.ts @@ -0,0 +1,24 @@ +import { defineStore } from 'pinia' +import { reactive } from 'vue' +import { useGlobalStore } from '@/stores/globalStore' + +export const usePiyangoContactStore = defineStore('piyangoContactStore', () => { + const globalStore = useGlobalStore() + + const baseContactData = reactive>({ + adSoyad: '', + telefonNumarasi: '', + faksNumarasi: '', + eposta: '', + unvan: '' + }) + const contactData = reactive>({}) + const safeContactData = reactive>({}) + + const ResetFormData = () => { + globalStore.ResetObject(contactData, baseContactData) + Object.assign(contactData, baseContactData) + } + + return { baseContactData, contactData, safeContactData, ResetFormData } +}) diff --git a/src/module/cekilisler/stores/piyangoDocumentStore.ts b/src/module/cekilisler/stores/piyangoDocumentStore.ts new file mode 100644 index 0000000..ebf6ca8 --- /dev/null +++ b/src/module/cekilisler/stores/piyangoDocumentStore.ts @@ -0,0 +1,36 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { usePiyangoStore } from './piyangoStore' + +export const usePiyangoDocumentStore = defineStore('piyangoDocumentStore', () => { + const piyangoStore = usePiyangoStore() + + const piyangoDocumentsList = ref[]>([]) + const piyangoDocumentBaseForm = reactive>({ + dosya: null, + cekilisId: piyangoStore.selectedLottery, + dokumanAdi: '' + }) + const piyangoDocumentForm = reactive>({}) + const piyangoDocumentSafeForm = reactive>({}) + const isUpdate = ref(false) + const refreshList = ref(false) + const documentPanel = ref(false) + const loaded = ref(false) + + const ResetForm = () =>{ + Object.assign(piyangoDocumentForm, piyangoDocumentBaseForm) + } + + return { + piyangoDocumentsList, + piyangoDocumentBaseForm, + piyangoDocumentForm, + piyangoDocumentSafeForm, + isUpdate, + refreshList, + documentPanel, + loaded, + ResetForm + } +}) diff --git a/src/module/cekilisler/stores/piyangoIkramiyeStore.ts b/src/module/cekilisler/stores/piyangoIkramiyeStore.ts new file mode 100644 index 0000000..4e67720 --- /dev/null +++ b/src/module/cekilisler/stores/piyangoIkramiyeStore.ts @@ -0,0 +1,75 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoStore } from './piyangoStore' + +export const usePiyangoIkramiyeStore = defineStore('piyangoIkramiyeStore', () => { + const piyangoStore = usePiyangoStore() + const validationStore = useValidationStore() + + const piyangoAllIkramiyeData = ref[]>([]) + const piyangoAllIkramiyeTotals = reactive>({ + asilTalihliAdedi: 0, + toplamDeger: 0, + yedekTalihliAdedi: 0 + }) + const piyangoAllIkramiyeParaBirimi = ref('') + + const piyangoIkramiyeBaseForm = reactive>({ + cinsi: '', + marka: '', + model: '', + birimFiyat: null, + paraBirimiId: null, + asilTalihliAdedi: null, + yedekTalihliAdedi: piyangoStore.isLotteryForCharity ? 0 : null, + toplamDeger: null + }) + const piyangoIkramiyeForm = reactive>({}) + const piyangoIkramiyeSafeForm = reactive>({}) + const isUpdate = ref(false) + const refreshList = ref(false) + const ikramiyePanel = ref(false) + const loaded = ref(false) + + const totalIkramiyeValues = reactive>({ + yedekTalihliAdedi: 'toplamyedektalihli', + asilTalihliAdedi: 'toplamasiltalihli', + toplamDeger: 'toplamdeger' + }) + + const ResetForm = () => { + Object.assign(piyangoIkramiyeForm, piyangoIkramiyeBaseForm) + } + + const CalculateToplamDeger = (e: Event) => { + if ( + !validationStore.checkEmpty(piyangoIkramiyeForm.birimFiyat) && + !validationStore.checkEmpty(piyangoIkramiyeForm.asilTalihliAdedi) + ) { + let total = + Number(String(piyangoIkramiyeForm.birimFiyat).replace(',', '.')) * + piyangoIkramiyeForm.asilTalihliAdedi + + piyangoIkramiyeForm.toplamDeger = String(total.toFixed(2)).replace('.', ',') + } else { + piyangoIkramiyeForm.toplamDeger = 0 + } + } + + return { + piyangoAllIkramiyeData, + piyangoAllIkramiyeTotals, + piyangoAllIkramiyeParaBirimi, + piyangoIkramiyeBaseForm, + piyangoIkramiyeForm, + piyangoIkramiyeSafeForm, + isUpdate, + refreshList, + ikramiyePanel, + loaded, + totalIkramiyeValues, + ResetForm, + CalculateToplamDeger + } +}) diff --git a/src/module/cekilisler/stores/piyangoItirazStore.ts b/src/module/cekilisler/stores/piyangoItirazStore.ts new file mode 100644 index 0000000..0d5f101 --- /dev/null +++ b/src/module/cekilisler/stores/piyangoItirazStore.ts @@ -0,0 +1,36 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { usePiyangoStore } from './piyangoStore' + +export const usePiyangoItirazStore = defineStore('piyangoItirazStore', () => { + const piyangoStore = usePiyangoStore() + + const piyangoItirazBaseForm = reactive>({ + itirazTarihi: '', + itirazEden: '', + aciklama: '', + dosya: null, + durum: null, + cekilisId: piyangoStore.selectedLottery, + surecTipiId: null + }) + const piyangoItirazForm = reactive>({}) + const piyangoItirazSafeForm = reactive>({}) + const isUpdate = ref(false) + const refreshList = ref(false) + const itirazPanel = ref(false) + + const ResetForm = () =>{ + Object.assign(piyangoItirazForm, piyangoItirazBaseForm) + } + + return { + piyangoItirazBaseForm, + piyangoItirazForm, + piyangoItirazSafeForm, + isUpdate, + refreshList, + itirazPanel, + ResetForm + } +}) diff --git a/src/module/cekilisler/stores/piyangoMecraStore.ts b/src/module/cekilisler/stores/piyangoMecraStore.ts new file mode 100644 index 0000000..8a68335 --- /dev/null +++ b/src/module/cekilisler/stores/piyangoMecraStore.ts @@ -0,0 +1,38 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { usePiyangoStore } from './piyangoStore' + +export const usePiyangoMecraStore = defineStore('piyangoMecraStore', () => { + const piyangoStore = usePiyangoStore() + + const piyangoAllMecraData = ref[]>([]) + + const piyangoMecraBaseForm = reactive>({ + cekilisId: piyangoStore.selectedLottery, + mecraAdi: '', + yayinlanmaDurumu: 0, + yayinlanacagiTarih: piyangoStore.baseLotteryData.ilantarihi || new Date() + }) + const piyangoMecraForm = reactive>({}) + const piyangoMecraSafeForm = reactive>({}) + const isUpdate = ref(false) + const refreshList = ref(false) + const mecraPanel = ref(false) + const loaded = ref(false) + + const ResetForm = () => { + Object.assign(piyangoMecraForm, piyangoMecraBaseForm) + } + + return { + piyangoAllMecraData, + piyangoMecraBaseForm, + piyangoMecraForm, + piyangoMecraSafeForm, + isUpdate, + refreshList, + mecraPanel, + loaded, + ResetForm + } +}) diff --git a/src/module/cekilisler/stores/piyangoOnayStore.ts b/src/module/cekilisler/stores/piyangoOnayStore.ts new file mode 100644 index 0000000..bbdaac2 --- /dev/null +++ b/src/module/cekilisler/stores/piyangoOnayStore.ts @@ -0,0 +1,36 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { usePiyangoStore } from './piyangoStore' +import { useUsersStore } from '@/stores/usersStore' + +export const usePiyangoOnayStore = defineStore('piyangoOnayStore', () => { + const piyangoStore = usePiyangoStore() + const usersStore = useUsersStore() + + const piyangoOnayBaseForm = reactive>({ + onayDurumuIslemTipiId: null, + onayCekilisId: piyangoStore.selectedLottery, + kisiId: usersStore.userId, + aciklama: '', + file: '' + }) + const piyangoOnayForm = reactive>({}) + const piyangoOnaySafeForm = reactive>({}) + const isUpdate = ref(false) + const refreshList = ref(false) + const loaded = ref(false) + + const ResetForm = () => { + Object.assign(piyangoOnayForm, piyangoOnayBaseForm) + } + + return { + piyangoOnayBaseForm, + piyangoOnayForm, + piyangoOnaySafeForm, + isUpdate, + refreshList, + loaded, + ResetForm + } +}) diff --git a/src/module/cekilisler/stores/piyangoStore.ts b/src/module/cekilisler/stores/piyangoStore.ts new file mode 100644 index 0000000..55c7ea4 --- /dev/null +++ b/src/module/cekilisler/stores/piyangoStore.ts @@ -0,0 +1,185 @@ +import { defineStore } from 'pinia' +import { ref, reactive, computed } from 'vue' +import { useUsersStore } from '@/stores/usersStore' +import { useGlobalStore } from '@/stores/globalStore' + +export const usePiyangoStore = defineStore('piyangoStore', () => { + const usersStore = useUsersStore() + const globalStore = useGlobalStore() + + const isNew = ref(true) + const lotteryId = ref(null) + const selectedLottery = ref(null) + const lotteryApprove = ref(null) + const lotteryDrawState = ref(false) + const lotteryDrawDate = ref('') + const lotteryIlanTarihi = ref('') + const lotteryFirstApproveDate = ref('') + const lotteryCreationDate = ref('') + const lotteryStateDate = ref('') + const lotteryPurposeId = ref(null) + const lotteryBasvuruBedeliStatus = ref(null) + const lotteryIzinBedeliStatus = ref(null) + const subCustomerType = ref(null) + const customerApproved = ref(false) + const lotteryYetkiRefresh = ref(false) + + const lotteryStatusTypes = ref[]>([ + { name: 'Bekliyor', class: 'waiting' }, + { name: 'Kapsam Dışı', class: 'waiting' }, + { name: 'Onaylandı', class: 'ok' }, + { name: 'İzin Verildi', class: 'ok' }, + { name: 'Kampanya Olumlu Bitti', class: 'ok' }, + { name: 'Katılımcı Listesi Yüklendi', class: 'next' }, + { name: 'Bilgi/Belge Eksik/Yanlış', class: 'waiting' }, + { name: 'Başvuru İşleme Alındı', class: 'waiting' }, + { name: 'Düzenleme Bekliyor', class: 'waiting' }, + { name: 'Üzerinde Çalışılıyor', class: 'waiting' }, + { name: 'Ön Kayıt Kabul Edildi', class: 'waiting' }, + { name: 'Yardım Amaçlı Piyango Son Onay', class: 'waiting' }, + { name: 'İnceleme Bekleniyor', class: 'beforeok' }, + { name: 'Yeni Piyango', class: 'new' }, + { name: 'Başvuru Reddedildi', class: 'alert' }, + { name: 'Başvuru Uygun Görülmedi', class: 'alert' }, + { name: 'İzin Öncesi İptal', class: 'alert' }, + { name: 'İzin Sonrası İptal', class: 'alert' }, + { name: 'Ceza Verildi', class: 'alert' }, + { name: 'Değişiklik Talep Ediliyor', class: 'change' } + ]) + + const baseLotteryData = reactive>({ + amac:'', + amacpiyangoId: null, + duzenleyenId: null, + baslik: '', + baglisirketId: null, + cekilisSartveSekilleri: '', + kapsamIl: [] as string[], + kapsamIlce: [] as string[], + baslangicTarihi: '', + bitisTarihi: '', + asilSonBasvuruTarihi: '', + yedekSonBasvuruTarihi: '', + cekilisTarihi: '', + ilantarihi: '', + ilantarihi2: '', + ikramiyeTeslimTarihi: '', + ilanEdilecekGazete: '', + ilId: null, + ilceId: null, + adres: '', + katilimListesi: '', + katilimciListesiTeslimYontemiId: null, + cekilisYontemiId: null, + digerHususlar: '' + }) + + const lotteryData = reactive>({}) + const safeLotteryData = reactive>({}) + const duzenleyenData = reactive>({}) + const araciUyeData = reactive>({}) + const lotterySelectedProvience = ref('') + + const UyeName = (data: Record): string => { + if (data.basvuruTipId === 18) return `${data.gercekAdi} ${data.gercekSoyadi}` + else if (data.basvuruTipId === 21) return `${data.tuzelUnvan}` + else if (data.basvuruTipId === 22) return `${data.dernekUnvan}` + else if (data.basvuruTipId === 23) return `${data.sirketUnvan}` + else if (data.basvuruTipId === 26) return `${data.kamuUnvan}` + return '' + } + + const duzenleyenLink = computed(() => { + if (lotteryData.baglisirketId === null && lotteryData.duzenleyenId !== null) + return '/uyeler/detay/' + lotteryData.duzenleyenId + else if (lotteryData.duzenleyenId !== null && lotteryData.baglisirketId !== null) + return ( + '/uyeler/detay/' + + araciUyeData.baglisirketId + + '/yetkili-uye/detay/' + + lotteryData.duzenleyenId + ) + else return null + }) + + const araciLink = computed(() => { + return '/uyeler/detay/' + lotteryData.baglisirketId + }) + + const CheckForYardimAmacli = (): boolean => { + return ( + usersStore.isVakifDernek || + (usersStore.isAraciFirma && subCustomerType.value === 22) + ) + } + + const isLotteryForCharity = computed((): boolean => { + return lotteryPurposeId.value === 2 + }) + + const ResetLotteryData = () => { + globalStore.ResetObject(lotteryData, baseLotteryData) + Object.assign(lotteryData, baseLotteryData) + lotteryApprove.value = null + selectedLottery.value = null + lotteryData.kapsamIl.splice(0,lotteryData.kapsamIl.length) + lotteryData.kapsamIlce.splice(0,lotteryData.kapsamIlce.length) + } + + const ResetLotteryContent = () => { + Object.assign(lotteryData, baseLotteryData) + } + + const LoterryStatusClass = (d: any): string => { + let cls = lotteryStatusTypes.value.filter((v) => { + return v.name === d + }) + if (cls !== undefined && cls !== null && cls.length !== 0) + return 'back-grad-' + cls[0].class + else return 'back-grad-waiting' + } + + const SetLotteryControlData = (data: Record) => { + lotteryApprove.value = data.onayDurum + lotteryDrawDate.value = data.cekilisTarihi + lotteryDrawState.value = data.cekilisDuzenlemeDurum + lotteryStateDate.value = data.sonIslemTarihi + lotteryPurposeId.value = data.piyangoAmacId + lotteryFirstApproveDate.value = data.ilkIzinTarihi + lotteryBasvuruBedeliStatus.value = data.basvuruBedeliDurum + lotteryIzinBedeliStatus.value = data.izinBedeliDurum + } + return { + isNew, + lotteryId, + baseLotteryData, + selectedLottery, + lotteryApprove, + lotteryDrawState, + lotteryDrawDate, + lotteryIlanTarihi, + lotteryFirstApproveDate, + lotteryCreationDate, + lotteryStateDate, + lotteryBasvuruBedeliStatus, + lotteryIzinBedeliStatus, + subCustomerType, + lotteryPurposeId, + isLotteryForCharity, + lotteryYetkiRefresh, + lotteryData, + safeLotteryData, + duzenleyenData, + araciUyeData, + lotterySelectedProvience, + customerApproved, + duzenleyenLink, + araciLink, + UyeName, + CheckForYardimAmacli, + ResetLotteryData, + ResetLotteryContent, + LoterryStatusClass, + SetLotteryControlData + } +}) diff --git a/src/module/cekilisler/stores/piyangoYardimAmacliStore.ts b/src/module/cekilisler/stores/piyangoYardimAmacliStore.ts new file mode 100644 index 0000000..379d44f --- /dev/null +++ b/src/module/cekilisler/stores/piyangoYardimAmacliStore.ts @@ -0,0 +1,156 @@ +import { defineStore } from 'pinia' +import { ref, reactive, computed } from 'vue' +import { usePiyangoStore } from './piyangoStore' +import { useUsersStore } from '@/stores/usersStore' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoYardimAmacliValidationStore } from '../validation/piyangoYardimAmacliValidationStore' + +export const usePiyangoYardimAmacliStore = defineStore('piyangoYardimAmacliStore', () => { + const usersStore = useUsersStore() + const piyangoStore = usePiyangoStore() + const validationStore = useValidationStore() + const piyangoYardimAmacliValidationStore = usePiyangoYardimAmacliValidationStore() + + const yardimAmacliRakamlar = ref[]>([ + { title: 'Üç Rakam (000-999)', prefix: 'uc', min: 1, max: 999, maxl: 3 }, + { title: 'Dort Rakam (0000-9999)', prefix: 'dort', min: 1000, max: 9999, maxl: 4 }, + { title: 'Beş Rakam (00000-99999)', prefix: 'bes', min: 10000, max: 99999, maxl: 5 }, + { + title: 'Altı Rakam (000000-999999)', + prefix: 'alti', + min: 100000, + max: 999999, + maxl: 6 + } + ]) + + const piyangoYardimAmacliSafeFormData = reactive>({ + duzenleyenId: usersStore.userId, + cekilsiId: piyangoStore.selectedLottery, + basimevi: '', + basimeviAdresi: '', + birimSatisFiyati: null, + altiRakamAdet: null, + altiRakamBaslangic: null, + altiRakamBitis: null, + besRakamAdet: null, + besRakamBaslangic: null, + besRakamBitis: null, + dortRakamAdet: null, + dortRakamBaslangic: null, + dortRakamBitis: null, + ucRakamAdet: null, + ucRakamBaslangic: null, + ucRakamBitis: null + }) + + const piyangoYardimAmacliFormData = reactive>({}) + const piyangoYardimAmacliServerFormData = reactive>({}) + const loaded = ref(false) + const isNew = ref(false) + + const ResetFormData = () => { + loaded.value = false + if (isNew.value) + Object.assign(piyangoYardimAmacliFormData, piyangoYardimAmacliSafeFormData) + else Object.assign(piyangoYardimAmacliFormData, piyangoYardimAmacliServerFormData) + piyangoYardimAmacliValidationStore.formChanged = false + setTimeout(() => { + loaded.value = true + }, 30) + } + + const EmptyFormData = () => { + Object.assign(piyangoYardimAmacliFormData, piyangoYardimAmacliSafeFormData) + } + + const CreateBiletTable = () => { + for (let i = 0; i < yardimAmacliRakamlar.value.length; i++) { + piyangoYardimAmacliFormData[ + yardimAmacliRakamlar.value[i].prefix + 'RakamBaslangic' + ] = null + piyangoYardimAmacliFormData[yardimAmacliRakamlar.value[i].prefix + 'RakamBitis'] = + null + piyangoYardimAmacliFormData[yardimAmacliRakamlar.value[i].prefix + 'RakamAdet'] = + null + } + } + + const CalculateToplamBilet = (data: Record) => { + if ( + !validationStore.checkEmpty( + piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic'] + ) && + validationStore.checkEmpty(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis']) + ) { + piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis'] = + 'Bitiş numarasını girmelisiniz.' + } else { + delete piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis'] + } + + if ( + validationStore.checkEmpty( + piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic'] + ) && + !validationStore.checkEmpty(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis']) + ) { + piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBaslangic'] = + 'Başlangıç numarasını girmelisiniz.' + } else { + delete piyangoYardimAmacliValidationStore.invalidTexts[ + data.prefix + 'RakamBaslangic' + ] + } + + if ( + !validationStore.checkEmpty( + piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic'] + ) && + !validationStore.checkEmpty(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis']) + ) { + if ( + parseInt(piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic']) < + parseInt(piyangoYardimAmacliFormData[data.prefix + 'RakamBitis']) + ) { + delete piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis'] + piyangoYardimAmacliFormData[data.prefix + 'RakamAdet'] = + piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'] - + piyangoYardimAmacliFormData[data.prefix + 'RakamBaslangic'] + + 1 + } else { + piyangoYardimAmacliFormData[data.prefix + 'RakamAdet'] = '' + piyangoYardimAmacliValidationStore.invalidTexts[data.prefix + 'RakamBitis'] = + 'Bitiş numarasını başlangıç numarasından büyük olmalıdır.' + } + } else { + piyangoYardimAmacliFormData[data.prefix + 'RakamAdet'] = '' + } + + piyangoYardimAmacliValidationStore.formChanged = true + } + + const toplamBilet = computed(() => { + var toplam:number = 0 + yardimAmacliRakamlar.value.forEach((rakam) => { + if(piyangoYardimAmacliFormData[rakam.prefix + 'RakamAdet'] !== null){ + toplam += Number(piyangoYardimAmacliFormData[rakam.prefix + 'RakamAdet']) + } + }) + return toplam + }) + + return { + yardimAmacliRakamlar, + piyangoYardimAmacliSafeFormData, + piyangoYardimAmacliFormData, + piyangoYardimAmacliServerFormData, + loaded, + isNew, + toplamBilet, + ResetFormData, + EmptyFormData, + CreateBiletTable, + CalculateToplamBilet + } +}) diff --git a/src/module/cekilisler/validation/piyangoContactValidationStore.ts b/src/module/cekilisler/validation/piyangoContactValidationStore.ts new file mode 100644 index 0000000..56cbf9e --- /dev/null +++ b/src/module/cekilisler/validation/piyangoContactValidationStore.ts @@ -0,0 +1,59 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoContactStore } from '../stores/piyangoContactStore' + +export const usePiyangoContactValidationStore = defineStore( + 'piyangoContactValidationStore', + () => { + const validationStore = useValidationStore() + const piyangoContactStore = usePiyangoContactStore() + + const invalidTexts = reactive>({}) + const formChanged = ref(false) + const isFormValid = ref(true) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'adSoyad', 'Ad ve Soyad alanı boş bırakılamaz.') + validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'telefonNumarasi', 'Bir telefon numarası girmelisiniz.') + if (!validationStore.checkEmpty(piyangoContactStore.contactData.telefonNumarasi)) { + if(piyangoContactStore.contactData.telefonNumarasi.length !== 10){ + invalidTexts.telefonNumarasi = + 'Telefon numaranızı başında 0 olmadan 10 hane olarak giriniz.' + isFormValid.value = false + } else { + delete invalidTexts.telefonNumarasi + } + } + + if (!validationStore.checkEmpty(piyangoContactStore.contactData.faksNumarasi)) { + if(piyangoContactStore.contactData.faksNumarasi.length !== 10){ + invalidTexts.faksNumarasi = + 'Faks numaranızı başında 0 olmadan 10 hane olarak giriniz.' + isFormValid.value = false + } else { + delete invalidTexts.faksNumarasi + } + } + + validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'eposta', 'Mail adresini girmelisiniz.') + validationStore.IsFieldEmpty(piyangoContactStore.contactData,invalidTexts,'unvan', 'Başlık alanı boş bırakılamaz.') + + if (!validationStore.checkEmpty(piyangoContactStore.contactData.eposta)) { + if (!validationStore.checkEmail(piyangoContactStore.contactData.eposta)) { + invalidTexts.eposta = + 'Lütfen eposta adresinizi doğru formatta giriniz. Örn: isim@alanadi.td' + isFormValid.value = false + } else { + delete invalidTexts.eposta + } + } + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { invalidTexts, formChanged, FormCheck } + } +) diff --git a/src/module/cekilisler/validation/piyangoDocumentValidationStore.ts b/src/module/cekilisler/validation/piyangoDocumentValidationStore.ts new file mode 100644 index 0000000..c132376 --- /dev/null +++ b/src/module/cekilisler/validation/piyangoDocumentValidationStore.ts @@ -0,0 +1,44 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoDocumentStore } from '../stores/piyangoDocumentStore' + +export const usePiyangoDocumentValidationStore = defineStore( + 'piyangoDocumentValidationStore', + () => { + const piyangoDocumentStore = usePiyangoDocumentStore() + const validationStore = useValidationStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + piyangoDocumentStore.piyangoDocumentForm, + invalidTexts, + 'dokumanAdi', + 'Döküman için bir başlık belirtmelisiniz.' + ) + + validationStore.IsFieldEmpty( + piyangoDocumentStore.piyangoDocumentForm, + invalidTexts, + 'dosya', + 'Bir döküman eklemelisiniz.' + ) + + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/cekilisler/validation/piyangoIkramiyeValidationStore.ts b/src/module/cekilisler/validation/piyangoIkramiyeValidationStore.ts new file mode 100644 index 0000000..f307ca3 --- /dev/null +++ b/src/module/cekilisler/validation/piyangoIkramiyeValidationStore.ts @@ -0,0 +1,83 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoStore } from '../stores/piyangoStore' +import { usePiyangoIkramiyeStore } from '../stores/piyangoIkramiyeStore' + +export const usePiyangoIkramiyeValidationStore = defineStore( + 'piyangoIkramiyeValidationStore', + () => { + const validationStore = useValidationStore() + const piyangoStore = usePiyangoStore() + const piyangoIkramiyeStore = usePiyangoIkramiyeStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + piyangoIkramiyeStore.piyangoIkramiyeForm, + invalidTexts, + 'cinsi', + 'Bu alan boş bırakılamaz.' + ) + validationStore.IsFieldEmpty( + piyangoIkramiyeStore.piyangoIkramiyeForm, + invalidTexts, + 'marka', + 'Bu alan boş bırakılamaz.' + ) + validationStore.IsFieldEmpty( + piyangoIkramiyeStore.piyangoIkramiyeForm, + invalidTexts, + 'model', + 'Bu alan boş bırakılamaz.' + ) + validationStore.IsFieldEmpty( + piyangoIkramiyeStore.piyangoIkramiyeForm, + invalidTexts, + 'birimFiyat', + 'İkramiyenin birim fiyatını giriniz.' + ) + validationStore.IsFieldEmpty( + piyangoIkramiyeStore.piyangoIkramiyeForm, + invalidTexts, + 'paraBirimiId', + 'Para birimini seçmelisiniz' + ) + validationStore.IsFieldEmpty( + piyangoIkramiyeStore.piyangoIkramiyeForm, + invalidTexts, + 'asilTalihliAdedi', + piyangoStore.isLotteryForCharity + ? 'Talihli adedini giriniz.' + : 'Asıl talihli adedini giriniz.' + ) + if (!piyangoStore.isLotteryForCharity) + validationStore.IsFieldEmpty( + piyangoIkramiyeStore.piyangoIkramiyeForm, + invalidTexts, + 'yedekTalihliAdedi', + 'Yedek talihli adedini giriniz.' + ) + validationStore.IsFieldEmpty( + piyangoIkramiyeStore.piyangoIkramiyeForm, + invalidTexts, + 'toplamDeger', + 'Toplam değer alanı boş bırakılamaz.' + ) + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/cekilisler/validation/piyangoItirazValidationStore.ts b/src/module/cekilisler/validation/piyangoItirazValidationStore.ts new file mode 100644 index 0000000..e4eb4b4 --- /dev/null +++ b/src/module/cekilisler/validation/piyangoItirazValidationStore.ts @@ -0,0 +1,71 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoItirazStore } from '../stores/piyangoItirazStore' + +export const usePiyangoItirazValidationStore = defineStore( + 'piyangoItirazValidationStore', + () => { + const piyangoItirazStore = usePiyangoItirazStore() + const validationStore = useValidationStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + piyangoItirazStore.piyangoItirazForm, + invalidTexts, + 'surecTipiId', + 'Süreç tipini seçmelisiniz.' + ) + + validationStore.IsFieldEmpty( + piyangoItirazStore.piyangoItirazForm, + invalidTexts, + 'durum', + 'Süreç durumunu seçmelisiniz.' + ) + + validationStore.IsFieldEmpty( + piyangoItirazStore.piyangoItirazForm, + invalidTexts, + 'itirazTarihi', + 'İtiraz tarihini seçmelisiniz.' + ) + + validationStore.IsFieldEmpty( + piyangoItirazStore.piyangoItirazForm, + invalidTexts, + 'itirazEden', + 'İtiraz eden kişi/kurumun adını yazmalısınız.' + ) + + validationStore.IsFieldEmpty( + piyangoItirazStore.piyangoItirazForm, + invalidTexts, + 'aciklama', + 'Açıklama alanı boş bırakılamaz.' + ) + + validationStore.IsFieldEmpty( + piyangoItirazStore.piyangoItirazForm, + invalidTexts, + 'dosya', + 'Dosya yüklemelisiniz.' + ) + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/cekilisler/validation/piyangoMecraValidationStore.ts b/src/module/cekilisler/validation/piyangoMecraValidationStore.ts new file mode 100644 index 0000000..6ec2114 --- /dev/null +++ b/src/module/cekilisler/validation/piyangoMecraValidationStore.ts @@ -0,0 +1,37 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoMecraStore } from '../stores/piyangoMecraStore' + +export const usePiyangoMecraValidationStore = defineStore( + 'piyangoMecraValidationStore', + () => { + const piyangoMecraStore = usePiyangoMecraStore() + const validationStore = useValidationStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + piyangoMecraStore.piyangoMecraForm, + invalidTexts, + 'mecraAdi', + 'Yayınlanacak mecranın adını yazınız.' + ) + + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/cekilisler/validation/piyangoOnayValidationStore.ts b/src/module/cekilisler/validation/piyangoOnayValidationStore.ts new file mode 100644 index 0000000..9b17c3c --- /dev/null +++ b/src/module/cekilisler/validation/piyangoOnayValidationStore.ts @@ -0,0 +1,36 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoOnayStore } from '../stores/piyangoOnayStore' + +export const usePiyangoOnayValidationStore = defineStore( + 'piyangoOnayValidationStore', + () => { + const validationStore = useValidationStore() + const piyangoOnayStore = usePiyangoOnayStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + piyangoOnayStore.piyangoOnayForm, + invalidTexts, + 'onayDurumuIslemTipiId', + 'Bir işlem tipi seçmelisinz.' + ) + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/cekilisler/validation/piyangoTeminatValidationStore.ts b/src/module/cekilisler/validation/piyangoTeminatValidationStore.ts new file mode 100644 index 0000000..d9bf973 --- /dev/null +++ b/src/module/cekilisler/validation/piyangoTeminatValidationStore.ts @@ -0,0 +1,83 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoTeminatStore } from '../stores/piyangoTeminatStore' +import { useUsersStore } from '@/stores/usersStore' + +export const usePiyangoTeminatValidationStore = defineStore( + 'piyangoTeminatValidationStore', + () => { + const piyangoTeminatStore = usePiyangoTeminatStore() + const validationStore = useValidationStore() + const usersStore = useUsersStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + if (usersStore.isPanelUser) { + validationStore.IsFieldEmpty( + piyangoTeminatStore.piyangoTeminatFormData, + invalidTexts, + 'state', + 'Lütfen işlem tipini seçiniz.' + ) + } + + validationStore.IsFieldEmpty( + piyangoTeminatStore.piyangoTeminatFormData, + invalidTexts, + 'amount', + 'Lütfen tutarı giriniz.' + ) + validationStore.IsFieldEmpty( + piyangoTeminatStore.piyangoTeminatFormData, + invalidTexts, + 'bankName', + 'Lütfen banka adını giriniz.' + ) + validationStore.IsFieldEmpty( + piyangoTeminatStore.piyangoTeminatFormData, + invalidTexts, + 'bankBranch', + 'Lütfen banka şubesini giriniz.' + ) + validationStore.IsFieldEmpty( + piyangoTeminatStore.piyangoTeminatFormData, + invalidTexts, + 'teminatParentType', + 'Lütfen ödeme türünü seçiniz.' + ) + validationStore.IsFieldEmpty( + piyangoTeminatStore.piyangoTeminatFormData, + invalidTexts, + 'teminantChildType', + 'Lütfen teminat türünü seçiniz.' + ) + validationStore.IsFieldEmpty( + piyangoTeminatStore.piyangoTeminatFormData, + invalidTexts, + 'teminantDate', + 'Tarih alanı boş bırakılamaz.' + ) + validationStore.IsFieldEmpty( + piyangoTeminatStore.piyangoTeminatFormData, + invalidTexts, + 'teminantNo', + 'No alanı boş bırakılamaz.' + ) + + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/cekilisler/validation/piyangoValidationStore.ts b/src/module/cekilisler/validation/piyangoValidationStore.ts new file mode 100644 index 0000000..79c26c5 --- /dev/null +++ b/src/module/cekilisler/validation/piyangoValidationStore.ts @@ -0,0 +1,675 @@ +import { defineStore } from 'pinia' +import { ref, reactive, computed } from 'vue' +import { useUsersStore } from '@/stores/usersStore' +import { useValidationStore } from '@/stores/validationStore' +import { useDateStore } from '@/stores/dateStore' +import { usePiyangoStore } from '../stores/piyangoStore' + +export const usePiyangoValidationStore = defineStore('piyangoValidationStore', () => { + const usersStore = useUsersStore() + const piyangoStore = usePiyangoStore() + const validationStore = useValidationStore() + const dateStore = useDateStore() + + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + const dateChanged = ref(false) + const baslangicTarihiMin = ref(new Date()) + + //Kampanya Bitis Tarihi + const kampanyaBitisDisabled = computed((): boolean => { + return piyangoStore.lotteryData.baslangicTarihi === '' + }) + + const kampanyaBitisMin = computed((): Date => { + let date = new Date(piyangoStore.lotteryData.baslangicTarihi) + let year = date.getFullYear() + let month = date.getMonth() + let day = date.getDate() + let time = date.getTime() + let addHour = 1 * 60 * 60 * 1000 + let newDate = new Date(year, month, day) + newDate.setTime(time + addHour) + return newDate + }) + const kampanyaBitisMax = computed((): Date => { + let date = new Date(piyangoStore.lotteryData.baslangicTarihi) + let year = date.getFullYear() + let month = date.getMonth() + let day = date.getDate() + let newDate = new Date(year, month + 6, day) + return newDate + }) + //Cekilis Tarihi + const cekilisTarihiDisabled = computed((): boolean => { + return ( + piyangoStore.lotteryData.amacpiyangoId !== 2 && + (piyangoStore.lotteryData.bitisTarihi === '' || + piyangoStore.lotteryData.baslangicTarihi === '') + ) + }) + const cekilisTarihiMin = computed((): Date => { + if (piyangoStore.lotteryData.amacpiyangoId === 2) return new Date() + else return piyangoStore.lotteryData.bitisTarihi + }) + //Ilan Tarihi + const ilanTarihiDisabled = computed((): boolean => { + if (piyangoStore.lotteryData.amacpiyangoId !== 2) { + return ( + piyangoStore.lotteryData.bitisTarihi === '' || + piyangoStore.lotteryData.baslangicTarihi === '' || + piyangoStore.lotteryData.cekilisTarihi === '' + ) + } else { + return piyangoStore.lotteryData.cekilisTarihi === '' + } + }) + const ilanTarihiMin = computed((): Date => { + return piyangoStore.lotteryData.cekilisTarihi + }) + const ilanTarihiMax = computed((): Date => { + let date = new Date(piyangoStore.lotteryData.cekilisTarihi) + let year = date.getFullYear() + let month = date.getMonth() + let day = date.getDate() + let newDate = new Date(year, month, day + 7) + return newDate + }) + //Ilan Tarihi 2 + const ilanTarihi2Disabled = computed((): boolean => { + return ( + piyangoStore.lotteryData.cekilisTarihi === '' || + piyangoStore.lotteryData.ilantarihi === '' + ) + }) + const ilanTarihi2Min = computed((): Date => { + let date = new Date(piyangoStore.lotteryData.ilantarihi) + let year = date.getFullYear() + let month = date.getMonth() + let day = date.getDate() + let newDate = new Date(year, month, day + 1) + return newDate + }) + const ilanTarihi2Max = computed((): Date => { + let date = new Date(piyangoStore.lotteryData.cekilisTarihi) + let year = date.getFullYear() + let month = date.getMonth() + let day = date.getDate() + let newDate = new Date(year, month, day + 7) + return newDate + }) + + //Asıl Son Basvuru + const asilSonBasvuruDisabled = computed((): boolean => { + if (piyangoStore.lotteryData.amacpiyangoId !== 2) { + return ( + piyangoStore.lotteryData.baslangicTarihi === '' || + piyangoStore.lotteryData.bitisTarihi === '' || + piyangoStore.lotteryData.cekilisTarihi === '' || + piyangoStore.lotteryData.ilantarihi === '' + ) + } else { + return ( + piyangoStore.lotteryData.cekilisTarihi === '' || + piyangoStore.lotteryData.ilantarihi === '' || + piyangoStore.lotteryData.ilantarihi2 === '' + ) + } + }) + const asilSonBasvuruMin = computed((): Date => { + if (piyangoStore.lotteryData.amacpiyangoId !== 2) + return piyangoStore.lotteryData.ilantarihi + else return piyangoStore.lotteryData.ilantarihi2 + }) + + const asilSonBasvuruMax = computed((): Date => { + let selectDate = + piyangoStore.lotteryData.amacpiyangoId !== 2 + ? piyangoStore.lotteryData.ilantarihi + : piyangoStore.lotteryData.ilantarihi2 + let date = new Date(selectDate) + let year = date.getFullYear() + let month = date.getMonth() + let day = date.getDate() + let newDate = new Date(year, month, day + 15) + return newDate + }) + //Yedek Son Basvuru + const yedekSonBasvuruDisabled = computed((): boolean => { + return ( + piyangoStore.lotteryData.baslangicTarihi === '' || + piyangoStore.lotteryData.bitisTarihi === '' || + piyangoStore.lotteryData.cekilisTarihi === '' || + piyangoStore.lotteryData.ilantarihi === '' || + piyangoStore.lotteryData.asilSonBasvuruTarihi === '' + ) + }) + const yedekSonBasvuruMin = computed((): Date => { + return piyangoStore.lotteryData.asilSonBasvuruTarihi + }) + const yedekSonBasvuruMax = computed((): Date => { + let date = new Date(piyangoStore.lotteryData.asilSonBasvuruTarihi) + let year = date.getFullYear() + let month = date.getMonth() + let day = date.getDate() + let newDate = new Date(year, month, day + 15) + return newDate + }) + //Ikramiye Son Teslim + const ikramiyeTeslimDisabled = computed((): boolean => { + if (piyangoStore.lotteryData.amacpiyangoId !== 2) { + return ( + piyangoStore.lotteryData.baslangicTarihi === '' || + piyangoStore.lotteryData.cekilisTarihi === '' + ) + } else { + return piyangoStore.lotteryData.cekilisTarihi === '' + } + }) + const ikramiyeTeslimMin = computed((): Date => { + return piyangoStore.lotteryData.asilSonBasvuruTarihi + }) + const ikramiyeTeslimMax = computed((): Date => { + var date: Date = new Date() + + if (!piyangoStore.isLotteryForCharity) { + date = new Date(piyangoStore.lotteryData.baslangicTarihi) + } else { + if ( + piyangoStore.lotteryFirstApproveDate === '' || + piyangoStore.lotteryFirstApproveDate === null + ) { + date = new Date(piyangoStore.lotteryCreationDate) + } else { + date = new Date(piyangoStore.lotteryFirstApproveDate) + } + } + + var year = date.getFullYear() + var month = date.getMonth() + var day = date.getDate() + + let newDate = new Date(year + 1, month, day) + return newDate + }) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'baslik', + 'Başlık alanı boş bırakılamaz.' + ) + + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'amacpiyangoId', + 'Piyangoyu hangi amaçla düzenlediğinizi seçmelisiniz.' + ) + if (!validationStore.checkEmpty(piyangoStore.lotteryData.amacpiyangoId)) { + if ( + ((!usersStore.isVakifDernek && + !usersStore.isAraciFirma && + !usersStore.isPanelUser) || + (usersStore.isPanelUser && piyangoStore.duzenleyenData.basvuruTipId !== 22)) && + piyangoStore.lotteryData.amacpiyangoId === 2 + ) { + if (!usersStore.isPanelUser) piyangoStore.lotteryData.amacpiyangoId = null + isFormValid.value = false + invalidTexts.amacpiyangoId = + 'Gerçek Kişi ve Tüzel Kişiler için Yardım Amaçlı Piyango düzenlenemez. Lütfen başka bir amaç seçiniz.' + } + } + + if ( + (usersStore.isAraciFirma && !usersStore.isPanelUser) || + (usersStore.isPanelUser && piyangoStore.lotteryData.baglisirketId !== null) + ) { + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'baglisirketId', + 'Hangi kişi/kurum adına çekilişi düzenlediğiniz seçmelisiniz.' + ) + + if (!validationStore.checkEmpty(piyangoStore.lotteryData.amacpiyangoId)) { + if (!validationStore.checkEmpty(piyangoStore.lotteryData.baglisirketId)) { + if ( + piyangoStore.duzenleyenData.basvuruTipId !== 22 && + piyangoStore.lotteryData.amacpiyangoId === 2 + ) { + if (!usersStore.isPanelUser) piyangoStore.lotteryData.amacpiyangoId = null + isFormValid.value = false + invalidTexts.amacpiyangoId = + 'Gerçek Kişi ve Tüzel Kişiler için Yardım Amaçlı Piyango düzenlenemez. Lütfen başka bir amaç seçiniz.' + } + } + } + } + if (piyangoStore.lotteryData.amacpiyangoId !== 3) { + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'kapsamIl', + 'Çekilişin hangi illeri kapsadığını seçmelisiniz.' + ) + + if (piyangoStore.lotteryData.amacpiyangoId !== 2) { + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'cekilisSartveSekilleri', + 'Lütfen katılma şartlarını belirtiniz.' + ) + + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'baslangicTarihi', + 'Kampanya başlangıç tarihi seçmelisiniz.' + ) + if ( + !validationStore.checkEmpty(piyangoStore.lotteryData.baslangicTarihi) && + (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) + ) { + let baslangicTarihi = dateStore.dateFormat({ + date: piyangoStore.lotteryData.baslangicTarihi, + pattern: 'yy-mm-dd-t', + splitTime: 'T', + splitDate: '-' + }) + let baslangicmin = dateStore.dateFormat({ + date: baslangicTarihiMin.value, + pattern: 'yy-mm-dd-t', + splitTime: 'T', + splitDate: '-' + }) + let baslangicmind = dateStore.dateFormat({ + date: baslangicTarihiMin.value, + pattern: 'dd-mm-yy-t' + }) + if (baslangicTarihi < baslangicmin) { + isFormValid.value = false + invalidTexts.baslangicTarihi = `Kampanya Başlangıç Tarihi ${baslangicmind} tarihinden büyük olmalıdır.` + } else { + delete invalidTexts.baslangicTarihi + } + } + + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'bitisTarihi', + 'Kampanya bitiş tarihi seçmelisiniz.' + ) + if ( + !validationStore.checkEmpty(piyangoStore.lotteryData.bitisTarihi) && + (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) + ) { + let bitisTarihi = dateStore.dateFormat({ + date: piyangoStore.lotteryData.bitisTarihi, + pattern: 'yy-mm-dd-t', + splitTime: 'T', + splitDate: '-' + }) + + let bitismin = dateStore.dateFormat({ + date: kampanyaBitisMin.value, + pattern: 'yy-mm-dd-t', + splitTime: 'T', + splitDate: '-' + }) + let bitismax = dateStore.dateFormat({ + date: kampanyaBitisMax.value, + pattern: 'yy-mm-dd-t', + splitTime: 'T', + splitDate: '-' + }) + let bitismind = dateStore.dateFormat({ + date: kampanyaBitisMin.value, + pattern: 'dd-mm-yy-t' + }) + let bitismaxd = dateStore.dateFormat({ + date: kampanyaBitisMax.value, + pattern: 'dd-mm-yy-t' + }) + if (bitisTarihi < bitismin || bitisTarihi > bitismax) { + isFormValid.value = false + invalidTexts.bitisTarihi = `Kampanya Bitiş Tarihi ${bitismind} - ${bitismaxd} tarihleri arasında olmalıdır.` + } else { + delete invalidTexts.bitisTarihi + } + } + + if ( + !validationStore.checkEmpty(piyangoStore.lotteryData.bitisTarihi) && + !validationStore.checkEmpty(piyangoStore.lotteryData.baslangicTarihi) + ) { + if ( + piyangoStore.lotteryData.bitisTarihi < + piyangoStore.lotteryData.baslangicTarihi + ) { + invalidTexts.baslangicTarihi = `Başlangıç tarihi bitiş tarihinden küçük olamaz.` + } else { + delete invalidTexts.baslangicTarihi + } + } + } + + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'cekilisTarihi', + 'Çekilişin yapılacağı tarihi seçmelisiniz.' + ) + + if ( + !validationStore.checkEmpty(piyangoStore.lotteryData.cekilisTarihi) && + (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) && + !usersStore.isPanelUser + ) { + let cekilisTarihi = dateStore.dateFormat({ + date: piyangoStore.lotteryData.cekilisTarihi, + pattern: 'yy-mm-dd-t', + splitTime: 'T', + splitDate: '-' + }) + let cekilismin = dateStore.dateFormat({ + date: cekilisTarihiMin.value, + pattern: 'yy-mm-dd-t', + splitTime: 'T', + splitDate: '-' + }) + let cekilismind = dateStore.dateFormat({ + date: cekilisTarihiMin.value, + pattern: 'dd-mm-yy-t' + }) + if (cekilisTarihi < cekilismin) { + isFormValid.value = false + invalidTexts.cekilisTarihi = `Çekiliş Tarihi ${cekilismind} tarihinden büyük olmalıdır.` + } else { + delete invalidTexts.cekilisTarihi + } + } + + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'ilantarihi', + 'İlan tarihi seçmelisiniz.' + ) + + if ( + !validationStore.checkEmpty(piyangoStore.lotteryData.ilantarihi) && + (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) + ) { + let ilanTarihi = dateStore.dateFormat({ + date: piyangoStore.lotteryData.ilantarihi, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let ilanmin = dateStore.dateFormat({ + date: ilanTarihiMin.value, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let ilanmax = dateStore.dateFormat({ + date: ilanTarihiMax.value, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let ilanmind = dateStore.dateFormat({ + date: ilanTarihiMin.value, + pattern: 'dd-mm-yy' + }) + let ilanmaxd = dateStore.dateFormat({ + date: ilanTarihiMax.value, + pattern: 'dd-mm-yy' + }) + if (ilanTarihi < ilanmin || ilanTarihi > ilanmax) { + isFormValid.value = false + invalidTexts.ilantarihi = `İlan Tarihi ${ilanmind} - ${ilanmaxd} tarihleri arasında olmalıdır.` + } else { + delete invalidTexts.ilantarihi + } + } + + if (piyangoStore.lotteryData.amacpiyangoId === 2) { + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'ilantarihi2', + '2. İlan tarihi seçmelisiniz.' + ) + + if ( + !validationStore.checkEmpty(piyangoStore.lotteryData.ilantarihi2) && + (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) + ) { + let ilanTarihi2 = dateStore.dateFormat({ + date: piyangoStore.lotteryData.ilantarihi2, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let ilan2min = dateStore.dateFormat({ + date: ilanTarihi2Min.value, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let ilan2max = dateStore.dateFormat({ + date: ilanTarihi2Max.value, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let ilan2mind = dateStore.dateFormat({ + date: ilanTarihi2Min.value, + pattern: 'dd-mm-yy' + }) + let ilan2maxd = dateStore.dateFormat({ + date: ilanTarihi2Max.value, + pattern: 'dd-mm-yy' + }) + + if (ilanTarihi2 < ilan2min || ilanTarihi2 > ilan2max) { + isFormValid.value = false + invalidTexts.ilantarihi2 = `2. İlan Tarihi ${ilan2mind} - ${ilan2maxd} tarihleri arasında olmalıdır.` + } else { + delete invalidTexts.ilantarihi2 + } + } + } + + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'asilSonBasvuruTarihi', + 'Asıl Talihliler için son başvuru tarihi seçmelisiniz.' + ) + + if ( + !validationStore.checkEmpty(piyangoStore.lotteryData.asilSonBasvuruTarihi) && + (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) + ) { + let asilTarih = dateStore.dateFormat({ + date: piyangoStore.lotteryData.asilSonBasvuruTarihi, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let asilmin = dateStore.dateFormat({ + date: asilSonBasvuruMin.value, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let asilmax = dateStore.dateFormat({ + date: asilSonBasvuruMax.value, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + if (asilTarih < asilmin || asilTarih > asilmax) { + isFormValid.value = false + invalidTexts.asilSonBasvuruTarihi = `Asıl Talihli son başvuru tarihi çekiliş sonucunun ilan ve tebliğ edildiği tarihten itibaren on beş gün içerisinde olmalıdır.` + } else { + delete invalidTexts.asilSonBasvuruTarihi + } + } + + if (piyangoStore.lotteryData.amacpiyangoId !== 2) { + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'yedekSonBasvuruTarihi', + 'Yedek talihliler için son başvuru tarihi seçmelisiniz.' + ) + + if ( + !validationStore.checkEmpty(piyangoStore.lotteryData.yedekSonBasvuruTarihi) && + (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) + ) { + let yedekTarih = dateStore.dateFormat({ + date: piyangoStore.lotteryData.yedekSonBasvuruTarihi, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let yedekmin = dateStore.dateFormat({ + date: yedekSonBasvuruMin.value, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let yedekmax = dateStore.dateFormat({ + date: yedekSonBasvuruMax.value, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + if (yedekTarih < yedekmin || yedekTarih > yedekmax) { + isFormValid.value = false + invalidTexts.yedekSonBasvuruTarihi = `Yedek Talihli Son Başvuru Tarihi, asıl talihliyi takip eden on beş gün içerisinde olmalıdır.` + } else { + delete invalidTexts.yedekSonBasvuruTarihi + } + } + } + + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'ikramiyeTeslimTarihi', + 'İkramiyelerin teslim edileceği tarihi seçmelisiniz.' + ) + + if ( + !validationStore.checkEmpty(piyangoStore.lotteryData.ikramiyeTeslimTarihi) && + (piyangoStore.isNew || (!piyangoStore.isNew && dateChanged.value)) + ) { + let ikramiyeTeslimTarih = dateStore.dateFormat({ + date: piyangoStore.lotteryData.ikramiyeTeslimTarihi, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let ikramiyemin = dateStore.dateFormat({ + date: ikramiyeTeslimMin.value, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let ikramiyemax = dateStore.dateFormat({ + date: ikramiyeTeslimMax.value, + pattern: 'yy-mm-dd', + splitDate: '-' + }) + let ikramiyemind = dateStore.dateFormat({ + date: ikramiyeTeslimMin.value, + pattern: 'dd-mm-yy' + }) + let ikramiyemaxd = dateStore.dateFormat({ + date: ikramiyeTeslimMax.value, + pattern: 'dd-mm-yy' + }) + if (ikramiyeTeslimTarih < ikramiyemin || ikramiyeTeslimTarih > ikramiyemax) { + isFormValid.value = false + invalidTexts.ikramiyeTeslimTarihi = `İkramiye Son Teslim Tarihi ${ikramiyemind} - ${ikramiyemaxd} tarihleri arasında olmalıdır.` + } else { + delete invalidTexts.ikramiyeTeslimTarihi + } + } + + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'ilanEdilecekGazete', + 'İlan edilecek gazete belirtmelisiniz.' + ) + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'ilId', + 'Lütfen il seçiniz' + ) + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'ilceId', + 'Lütfen ilçe seçiniz' + ) + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'adres', + 'Adres alanı boş bırakılamaz' + ) + + if (!piyangoStore.CheckForYardimAmacli()) { + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'katilimListesi', + 'Katılım Listesi için açıklamaları giriniz.' + ) + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'katilimciListesiTeslimYontemiId', + 'Katılım listesini nasıl yükleyeceğiniz belirtiniz.' + ) + } + + validationStore.IsFieldEmpty( + piyangoStore.lotteryData, + invalidTexts, + 'cekilisYontemiId', + 'Çekiliş yönteminizi belirtiniz.' + ) + } + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + isFormValid, + invalidTexts, + dateChanged, + baslangicTarihiMin, + kampanyaBitisDisabled, + kampanyaBitisMin, + kampanyaBitisMax, + cekilisTarihiDisabled, + cekilisTarihiMin, + ilanTarihiDisabled, + ilanTarihiMin, + ilanTarihiMax, + ilanTarihi2Disabled, + ilanTarihi2Min, + ilanTarihi2Max, + asilSonBasvuruDisabled, + asilSonBasvuruMin, + asilSonBasvuruMax, + yedekSonBasvuruDisabled, + yedekSonBasvuruMin, + yedekSonBasvuruMax, + ikramiyeTeslimDisabled, + ikramiyeTeslimMin, + ikramiyeTeslimMax, + FormCheck + } +}) diff --git a/src/module/cekilisler/validation/piyangoYardimAmacliValidationStore.ts b/src/module/cekilisler/validation/piyangoYardimAmacliValidationStore.ts new file mode 100644 index 0000000..64863c4 --- /dev/null +++ b/src/module/cekilisler/validation/piyangoYardimAmacliValidationStore.ts @@ -0,0 +1,248 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { usePiyangoYardimAmacliStore } from '../stores/piyangoYardimAmacliStore' + +export const usePiyangoYardimAmacliValidationStore = defineStore( + 'piyangoYardimAmacliValidationStore', + () => { + const piyangoYardimAmacliStore = usePiyangoYardimAmacliStore() + const validationStore = useValidationStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + const emptyBilet = reactive>({}) + const allBiletInvalid = ref(false) + const biletInvalidMessages = ref([]) + + const IsAllBiletsEmpty = () => { + for (let i = 0; i < piyangoYardimAmacliStore.yardimAmacliRakamlar.length; i++) { + emptyBilet[piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix] = + !validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix + 'RakamBaslangic' + ] + ) && + !validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix + 'RakamBitis' + ] + ) && + !validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + piyangoYardimAmacliStore.yardimAmacliRakamlar[i].prefix + 'RakamAdet' + ] + ) + } + } + + const CheckBiletEmpty = () => { + IsAllBiletsEmpty() + var isvalid = true + var count = 0 + Object.keys(emptyBilet).forEach((key) => { + if (!emptyBilet[key]) { + count++ + } + }) + + if (count === piyangoYardimAmacliStore.yardimAmacliRakamlar.length) isvalid = false + + if (isvalid) { + isFormValid.value = true + allBiletInvalid.value = false + } else { + biletInvalidMessages.value.push('Bilet alanları doldurulmamıştır.') + isFormValid.value = false + allBiletInvalid.value = true + } + } + + const CheckBiletSatir = () => { + biletInvalidMessages.value = [] + var eksikHane: boolean = false + var baslangicRakam: boolean = false + var bitisRakam: boolean = false + var bitisKucuk: boolean = false + + piyangoYardimAmacliStore.yardimAmacliRakamlar.forEach((data, i) => { + //Baslangic Rakam sayisi + if ( + !validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBaslangic' + ] + ) && + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBaslangic' + ].length < data.maxl + ) { + isFormValid.value = false + if (!eksikHane) { + eksikHane = true + biletInvalidMessages.value.push( + 'Bilet numarası girilirken eksik hane girilmiş' + ) + } + invalidTexts[ + data.prefix + 'RakamBaslangic' + ] = `Bilet numarası en az ${data.maxl} haneli olmalıdır` + } else delete invalidTexts[data.prefix + 'RakamBaslangic'] + + //Bitis Rakam sayisi + if ( + !validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBitis' + ] + ) && + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[data.prefix + 'RakamBitis'] + .length < data.maxl + ) { + isFormValid.value = false + if (!eksikHane) { + eksikHane = true + biletInvalidMessages.value.push( + 'Bilet numarası girilirken eksik hane girilmiş' + ) + } + invalidTexts[ + data.prefix + 'RakamBitis' + ] = `Bilet numarası en az ${data.maxl} haneli olmalıdır` + } else delete invalidTexts[data.prefix + 'RakamBitis'] + + //Bitis numarasi girilmemis + if ( + !validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBaslangic' + ] + ) && + validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBitis' + ] + ) + ) { + isFormValid.value = false + if (!bitisRakam) { + bitisRakam = true + biletInvalidMessages.value.push( + 'Bilet numarası girilirken başlangıç numarası girilmiş, bitiş numarası girilmemiş.' + ) + } + invalidTexts[data.prefix + 'RakamBitis'] = 'Bitiş numarasını girmelisiniz.' + } else { + delete invalidTexts[data.prefix + 'RakamBitis'] + } + + //Baslangic numarasi girilmemis + if ( + validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBaslangic' + ] + ) && + !validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBitis' + ] + ) + ) { + isFormValid.value = false + if (!baslangicRakam) { + baslangicRakam = true + biletInvalidMessages.value.push( + 'Bilet numarası girilirken bitiş numarası girilmiş, başlangıç numarası girilmemiş.' + ) + } + invalidTexts[data.prefix + 'RakamBaslangic'] = + 'Başlangıç numarasını girmelisiniz.' + } else { + delete invalidTexts[data.prefix + 'RakamBaslangic'] + } + + //Baslangic numarasi Bitis numarasindan buyuk + if ( + !validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBaslangic' + ] + ) && + !validationStore.checkEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBitis' + ] + ) + ) { + if ( + parseInt( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBaslangic' + ] + ) >= + parseInt( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData[ + data.prefix + 'RakamBitis' + ] + ) + ) { + isFormValid.value = false + if (!bitisKucuk) { + bitisKucuk = true + biletInvalidMessages.value.push( + 'Bilet numarası girilirken bitiş numarası başlangıç numarasından küçük girilmiş.' + ) + } + invalidTexts[data.prefix + 'RakamBitis'] = + 'Bitiş numarasını başlangıç numarasından büyük olmalıdır.' + } else { + delete invalidTexts[data.prefix + 'RakamBitis'] + } + } + }) + } + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + CheckBiletEmpty() + + if (!allBiletInvalid.value) { + CheckBiletSatir() + } + + validationStore.IsFieldEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData, + invalidTexts, + 'basimevi', + 'Lütfen Basımevi adını giriniz' + ) + validationStore.IsFieldEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData, + invalidTexts, + 'basimeviAdresi', + 'Lütfen Basımevi adresini giriniz' + ) + validationStore.IsFieldEmpty( + piyangoYardimAmacliStore.piyangoYardimAmacliFormData, + invalidTexts, + 'birimSatisFiyati', + 'Lütfen Bilet birim satış fiyatını giriniz' + ) + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + allBiletInvalid, + biletInvalidMessages, + CheckBiletEmpty, + CheckBiletSatir, + FormCheck + } + } +) diff --git a/src/module/cekilisler/views/PiyangoYeni.vue b/src/module/cekilisler/views/PiyangoYeni.vue new file mode 100644 index 0000000..e7ee743 --- /dev/null +++ b/src/module/cekilisler/views/PiyangoYeni.vue @@ -0,0 +1,14 @@ + + diff --git a/src/module/kullanicilar/components/TabKullaniciBilgileri.vue b/src/module/kullanicilar/components/TabKullaniciBilgileri.vue new file mode 100644 index 0000000..a52dadc --- /dev/null +++ b/src/module/kullanicilar/components/TabKullaniciBilgileri.vue @@ -0,0 +1,19 @@ + + diff --git a/src/module/kullanicilar/components/TabKullaniciBirimleri.vue b/src/module/kullanicilar/components/TabKullaniciBirimleri.vue new file mode 100644 index 0000000..6f45670 --- /dev/null +++ b/src/module/kullanicilar/components/TabKullaniciBirimleri.vue @@ -0,0 +1,8 @@ + + diff --git a/src/module/kullanicilar/components/TabKullaniciGorevleri.vue b/src/module/kullanicilar/components/TabKullaniciGorevleri.vue new file mode 100644 index 0000000..793a341 --- /dev/null +++ b/src/module/kullanicilar/components/TabKullaniciGorevleri.vue @@ -0,0 +1,9 @@ + + diff --git a/src/module/kullanicilar/components/TabKullaniciLoglari.vue b/src/module/kullanicilar/components/TabKullaniciLoglari.vue new file mode 100644 index 0000000..7997ff6 --- /dev/null +++ b/src/module/kullanicilar/components/TabKullaniciLoglari.vue @@ -0,0 +1,38 @@ + + diff --git a/src/module/kullanicilar/components/form/FormKullaniciBilgileri.vue b/src/module/kullanicilar/components/form/FormKullaniciBilgileri.vue new file mode 100644 index 0000000..a7a4832 --- /dev/null +++ b/src/module/kullanicilar/components/form/FormKullaniciBilgileri.vue @@ -0,0 +1,217 @@ + + diff --git a/src/module/kullanicilar/components/form/FormKullaniciBirimleri.vue b/src/module/kullanicilar/components/form/FormKullaniciBirimleri.vue new file mode 100644 index 0000000..2cfb3f9 --- /dev/null +++ b/src/module/kullanicilar/components/form/FormKullaniciBirimleri.vue @@ -0,0 +1,55 @@ + + diff --git a/src/module/kullanicilar/components/form/FormKullaniciGorevleri.vue b/src/module/kullanicilar/components/form/FormKullaniciGorevleri.vue new file mode 100644 index 0000000..fffb030 --- /dev/null +++ b/src/module/kullanicilar/components/form/FormKullaniciGorevleri.vue @@ -0,0 +1,53 @@ + + diff --git a/src/module/kullanicilar/components/form/FormKullaniciRolleri.vue b/src/module/kullanicilar/components/form/FormKullaniciRolleri.vue new file mode 100644 index 0000000..6261cb7 --- /dev/null +++ b/src/module/kullanicilar/components/form/FormKullaniciRolleri.vue @@ -0,0 +1,20 @@ + + diff --git a/src/module/kullanicilar/components/form/FormSifreDegistir.vue b/src/module/kullanicilar/components/form/FormSifreDegistir.vue new file mode 100644 index 0000000..10bc1e5 --- /dev/null +++ b/src/module/kullanicilar/components/form/FormSifreDegistir.vue @@ -0,0 +1,121 @@ + + diff --git a/src/module/kullanicilar/components/panel/PanelKullaniciBirim.vue b/src/module/kullanicilar/components/panel/PanelKullaniciBirim.vue new file mode 100644 index 0000000..2f46296 --- /dev/null +++ b/src/module/kullanicilar/components/panel/PanelKullaniciBirim.vue @@ -0,0 +1,14 @@ + + diff --git a/src/module/kullanicilar/components/panel/PanelKullaniciGorev.vue b/src/module/kullanicilar/components/panel/PanelKullaniciGorev.vue new file mode 100644 index 0000000..1c84f92 --- /dev/null +++ b/src/module/kullanicilar/components/panel/PanelKullaniciGorev.vue @@ -0,0 +1,14 @@ + + diff --git a/src/module/kullanicilar/routes/index.ts b/src/module/kullanicilar/routes/index.ts new file mode 100644 index 0000000..f5e2998 --- /dev/null +++ b/src/module/kullanicilar/routes/index.ts @@ -0,0 +1,13 @@ +import kullanciYeni from './kullanici-yeni' +import kullaniciDetay from './kullanici-detay' +import kullaniciListesi from '@/module/kullanicilar/routes/kullanici-listesi' +import kullaniciRolleri from '@/module/kullanicilar/routes/kullanici-rolleri' +import kullaniciAyarlari from './kullanici-ayarlari' + +export default [ + kullanciYeni, + kullaniciDetay, + kullaniciListesi, + kullaniciRolleri, + kullaniciAyarlari +] diff --git a/src/module/kullanicilar/routes/kullanici-ayarlari.ts b/src/module/kullanicilar/routes/kullanici-ayarlari.ts new file mode 100644 index 0000000..47c0bb6 --- /dev/null +++ b/src/module/kullanicilar/routes/kullanici-ayarlari.ts @@ -0,0 +1,10 @@ +import KullaniciAyarlari from '../views/KullaniciAyarlari.vue' + +export default { + path: '/kullanicilar/kullanici-ayarlari', + name: 'KullaniciAyarlari', + component: KullaniciAyarlari, + meta: { + authRequired: true + } +} diff --git a/src/module/kullanicilar/routes/kullanici-detay.ts b/src/module/kullanicilar/routes/kullanici-detay.ts new file mode 100644 index 0000000..dad3e2b --- /dev/null +++ b/src/module/kullanicilar/routes/kullanici-detay.ts @@ -0,0 +1,10 @@ +import KullaniciDetay from '@/module/kullanicilar/views/KullaniciDetay.vue' + +export default { + path: '/kullanicilar/detay/:kullaniciId', + name: 'KullaniciDetay', + component: KullaniciDetay, + meta: { + authRequired: true + } +} diff --git a/src/module/kullanicilar/routes/kullanici-listesi.ts b/src/module/kullanicilar/routes/kullanici-listesi.ts new file mode 100644 index 0000000..2fc4e25 --- /dev/null +++ b/src/module/kullanicilar/routes/kullanici-listesi.ts @@ -0,0 +1,10 @@ +import KullaniciListesi from "@/module/kullanicilar/views/KullaniciListesi.vue"; + +export default { + path:'/kullanicilar/kullanici-liste', + name:'KullaniciListesi', + component:KullaniciListesi, + meta:{ + authRequired:true + } +} \ No newline at end of file diff --git a/src/module/kullanicilar/routes/kullanici-rolleri.ts b/src/module/kullanicilar/routes/kullanici-rolleri.ts new file mode 100644 index 0000000..98aa762 --- /dev/null +++ b/src/module/kullanicilar/routes/kullanici-rolleri.ts @@ -0,0 +1,11 @@ +import KullaniciRolleri from "@/module/kullanicilar/views/KullaniciRolleri.vue"; + +export default { + path: '/kullanicilar/kullanici-roller', + name: 'KullaniciRoller', + component: KullaniciRolleri, + meta: { + authRequired: true + } + +} \ No newline at end of file diff --git a/src/module/kullanicilar/routes/kullanici-yeni.ts b/src/module/kullanicilar/routes/kullanici-yeni.ts new file mode 100644 index 0000000..2f4142c --- /dev/null +++ b/src/module/kullanicilar/routes/kullanici-yeni.ts @@ -0,0 +1,10 @@ +import KullaniciYeni from '@/module/kullanicilar/views/KullaniciYeni.vue' + +export default { + path: '/kullanicilar/yeni-kullanici', + name: 'YeniKullanici', + component: KullaniciYeni, + meta: { + authRequired: true + } +} diff --git a/src/module/kullanicilar/service/appUserRoleService.ts b/src/module/kullanicilar/service/appUserRoleService.ts new file mode 100644 index 0000000..d0f1486 --- /dev/null +++ b/src/module/kullanicilar/service/appUserRoleService.ts @@ -0,0 +1,44 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useAppUserRoleStore } from '../stores/appUserRoleStore' +import { useAppUserRoleValidationStore } from '../validation/appUserRoleValidationStore' + +export const useAppUserRoleService = defineStore('appUserRoleService', () => { + const dataStore = useDataStore() + const appUserRoleStore = useAppUserRoleStore() + const appUserRoleValidationStore = useAppUserRoleValidationStore() + + const GetAppUserRoleList = async () => { + if (appUserRoleStore.appUserRoles.length === 0) { + let data = await dataStore.dataGet('KullaniciGorevi') + appUserRoleStore.appUserRoles = data + } + } + + const SaveRole = async () => { + if (appUserRoleValidationStore.FormCheck()) { + if (appUserRoleStore.appUserRoleForm.appUsers === null) + appUserRoleStore.appUserRoleForm.appUsers = [] + let dt: any + if (!appUserRoleStore.isUpdate) { + dt = await dataStore.dataPost('KullaniciGorevi', { + data: appUserRoleStore.appUserRoleForm + }) + } else { + dt = await dataStore.dataPut('KullaniciGorevi/' + appUserRoleStore.appUserRoleForm.id, { + data: appUserRoleStore.appUserRoleForm + }) + } + if (dt !== 'errorfalse') { + appUserRoleStore.refreshList = true + appUserRoleStore.isUpdate = false + appUserRoleStore.rolePanel = false + } + } + } + + return { + GetAppUserRoleList, + SaveRole + } +}) \ No newline at end of file diff --git a/src/module/kullanicilar/service/appUserService.ts b/src/module/kullanicilar/service/appUserService.ts new file mode 100644 index 0000000..ca2a575 --- /dev/null +++ b/src/module/kullanicilar/service/appUserService.ts @@ -0,0 +1,11 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useAppUserStore } from '../stores/appUserStore' + +export const useAppUserService = defineStore('appUserService', () => { + const dataStore = useDataStore() + const appUserStore = useAppUserStore() + + return { + } +}) \ No newline at end of file diff --git a/src/module/kullanicilar/service/appUserUnitService.ts b/src/module/kullanicilar/service/appUserUnitService.ts new file mode 100644 index 0000000..361a8dd --- /dev/null +++ b/src/module/kullanicilar/service/appUserUnitService.ts @@ -0,0 +1,44 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useAppUserUnitStore } from '../stores/appUserUnitStore' +import { useAppUserUnitValidationStore } from '../validation/appUserUnitValidationStore' + +export const useAppUserUnitService = defineStore('appUserUnitService', () => { + const dataStore = useDataStore() + const appUserUnitStore = useAppUserUnitStore() + const appUserUnitValidationStore = useAppUserUnitValidationStore() + + const GetAppUserUnitList = async () => { + if (appUserUnitStore.appUserUnits.length === 0) { + let data = await dataStore.dataGet('Birim') + appUserUnitStore.appUserUnits = data + } + } + + const SaveUnit = async () => { + if (appUserUnitValidationStore.FormCheck()) { + if (appUserUnitStore.appUserUnitForm.appUsers === null) + appUserUnitStore.appUserUnitForm.appUsers = [] + let dt: any + if (!appUserUnitStore.isUpdate) { + dt = await dataStore.dataPost('Birim', { + data: appUserUnitStore.appUserUnitForm + }) + } else { + dt = await dataStore.dataPut('Birim/' + appUserUnitStore.appUserUnitForm.id, { + data: appUserUnitStore.appUserUnitForm + }) + } + if (dt !== 'errorfalse') { + appUserUnitStore.refreshList = true + appUserUnitStore.isUpdate = false + appUserUnitStore.unitPanel = false + } + } + } + + return { + GetAppUserUnitList, + SaveUnit + } +}) diff --git a/src/module/kullanicilar/stores/appUserRoleStore.ts b/src/module/kullanicilar/stores/appUserRoleStore.ts new file mode 100644 index 0000000..bb167e0 --- /dev/null +++ b/src/module/kullanicilar/stores/appUserRoleStore.ts @@ -0,0 +1,30 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' + +export const useAppUserRoleStore = defineStore('appUserRoleStore', () => { + const appUserRoles = ref[]>([]) + const appUserRoleBaseForm = reactive>({ + gorevAdi: '', + appUsers: [] + }) + const appUserRoleForm = reactive>({}) + const appUserRoleSafeForm = reactive>({}) + const isUpdate = ref(false) + const refreshList = ref(false) + const rolePanel = ref(false) + + const ResetForm = () => { + Object.assign(appUserRoleForm, appUserRoleBaseForm) + } + + return { + appUserRoles, + appUserRoleBaseForm, + appUserRoleForm, + appUserRoleSafeForm, + isUpdate, + refreshList, + rolePanel, + ResetForm + } +}) diff --git a/src/module/kullanicilar/stores/appUserStore.ts b/src/module/kullanicilar/stores/appUserStore.ts new file mode 100644 index 0000000..0364aba --- /dev/null +++ b/src/module/kullanicilar/stores/appUserStore.ts @@ -0,0 +1,10 @@ +import { defineStore } from 'pinia' +import { ref } from 'vue' + +export const useAppUserStore = defineStore('appUserStore', () => { + const selectedAppUser = ref(0) + + return { + selectedAppUser + } +}) diff --git a/src/module/kullanicilar/stores/appUserUnitStore.ts b/src/module/kullanicilar/stores/appUserUnitStore.ts new file mode 100644 index 0000000..11c0aa2 --- /dev/null +++ b/src/module/kullanicilar/stores/appUserUnitStore.ts @@ -0,0 +1,30 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' + +export const useAppUserUnitStore = defineStore('appUserUnitStore', () => { + const appUserUnits = ref[]>([]) + const appUserUnitBaseForm = reactive>({ + birimAdi: '', + appUsers: [] + }) + const appUserUnitForm = reactive>({}) + const appUserUnitSafeForm = reactive>({}) + const isUpdate = ref(false) + const refreshList = ref(false) + const unitPanel = ref(false) + + const ResetForm = () => { + Object.assign(appUserUnitForm, appUserUnitBaseForm) + } + + return { + appUserUnits, + appUserUnitBaseForm, + appUserUnitForm, + appUserUnitSafeForm, + isUpdate, + refreshList, + unitPanel, + ResetForm + } +}) diff --git a/src/module/kullanicilar/validation/appUserRoleValidationStore.ts b/src/module/kullanicilar/validation/appUserRoleValidationStore.ts new file mode 100644 index 0000000..f4bb6f6 --- /dev/null +++ b/src/module/kullanicilar/validation/appUserRoleValidationStore.ts @@ -0,0 +1,35 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { useAppUserRoleStore } from '../stores/appUserRoleStore' + +export const useAppUserRoleValidationStore = defineStore( + 'appUserRoleValidationStore', + () => { + const appUserRoleStore = useAppUserRoleStore() + const validationStore = useValidationStore() + + const userFormChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + validationStore.IsFieldEmpty( + appUserRoleStore.appUserRoleForm, + invalidTexts, + 'gorevAdi', + 'Lütfen görev adını giriniz' + ) + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + userFormChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/kullanicilar/validation/appUserUnitValidationStore.ts b/src/module/kullanicilar/validation/appUserUnitValidationStore.ts new file mode 100644 index 0000000..95483c1 --- /dev/null +++ b/src/module/kullanicilar/validation/appUserUnitValidationStore.ts @@ -0,0 +1,35 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { useAppUserUnitStore } from '../stores/appUserUnitStore' + +export const useAppUserUnitValidationStore = defineStore( + 'appUserUnitValidationStore', + () => { + const appUserUnitStore = useAppUserUnitStore() + const validationStore = useValidationStore() + + const userFormChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + validationStore.IsFieldEmpty( + appUserUnitStore.appUserUnitForm, + invalidTexts, + 'birimAdi', + 'Lütfen birim adını giriniz.' + ) + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + userFormChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/kullanicilar/views/KullaniciAyarlari.vue b/src/module/kullanicilar/views/KullaniciAyarlari.vue new file mode 100644 index 0000000..ce04881 --- /dev/null +++ b/src/module/kullanicilar/views/KullaniciAyarlari.vue @@ -0,0 +1,30 @@ + + diff --git a/src/module/kullanicilar/views/KullaniciDetay.vue b/src/module/kullanicilar/views/KullaniciDetay.vue new file mode 100644 index 0000000..1e6f84c --- /dev/null +++ b/src/module/kullanicilar/views/KullaniciDetay.vue @@ -0,0 +1,35 @@ + + diff --git a/src/module/kullanicilar/views/KullaniciListesi.vue b/src/module/kullanicilar/views/KullaniciListesi.vue new file mode 100644 index 0000000..db2fa38 --- /dev/null +++ b/src/module/kullanicilar/views/KullaniciListesi.vue @@ -0,0 +1,100 @@ + + diff --git a/src/module/kullanicilar/views/KullaniciRolleri.vue b/src/module/kullanicilar/views/KullaniciRolleri.vue new file mode 100644 index 0000000..1a9bb83 --- /dev/null +++ b/src/module/kullanicilar/views/KullaniciRolleri.vue @@ -0,0 +1,12 @@ + + diff --git a/src/module/kullanicilar/views/KullaniciYeni.vue b/src/module/kullanicilar/views/KullaniciYeni.vue new file mode 100644 index 0000000..462fbd1 --- /dev/null +++ b/src/module/kullanicilar/views/KullaniciYeni.vue @@ -0,0 +1,14 @@ + + diff --git a/src/module/muhasebe/components/TabMuhasebeAyarlari.vue b/src/module/muhasebe/components/TabMuhasebeAyarlari.vue new file mode 100644 index 0000000..fb44bd0 --- /dev/null +++ b/src/module/muhasebe/components/TabMuhasebeAyarlari.vue @@ -0,0 +1,9 @@ + + diff --git a/src/module/muhasebe/components/TabMuhasebePiyangoBilgileriDisplay.vue b/src/module/muhasebe/components/TabMuhasebePiyangoBilgileriDisplay.vue new file mode 100644 index 0000000..8d824f6 --- /dev/null +++ b/src/module/muhasebe/components/TabMuhasebePiyangoBilgileriDisplay.vue @@ -0,0 +1,47 @@ + + diff --git a/src/module/muhasebe/components/display/FormMuhasebePiyangoBilgileriDisplay.vue b/src/module/muhasebe/components/display/FormMuhasebePiyangoBilgileriDisplay.vue new file mode 100644 index 0000000..9cd4bf0 --- /dev/null +++ b/src/module/muhasebe/components/display/FormMuhasebePiyangoBilgileriDisplay.vue @@ -0,0 +1,133 @@ + + diff --git a/src/module/muhasebe/components/form/FormMuhasebeAyarlari.vue b/src/module/muhasebe/components/form/FormMuhasebeAyarlari.vue new file mode 100644 index 0000000..1c46d55 --- /dev/null +++ b/src/module/muhasebe/components/form/FormMuhasebeAyarlari.vue @@ -0,0 +1,88 @@ + + diff --git a/src/module/muhasebe/routes/index.ts b/src/module/muhasebe/routes/index.ts new file mode 100644 index 0000000..5cd5a55 --- /dev/null +++ b/src/module/muhasebe/routes/index.ts @@ -0,0 +1,9 @@ +import muhasebePiyangoListesi from './muhasebe-piyango-listesi' +import muhasebePiyangoDetay from './muhasebe-piyango-detay' +import muhasebeAyarlar from './muhasebe-ayarlar' + +export default [ + muhasebePiyangoListesi, + muhasebePiyangoDetay, + muhasebeAyarlar, +] diff --git a/src/module/muhasebe/routes/muhasebe-ayarlar.ts b/src/module/muhasebe/routes/muhasebe-ayarlar.ts new file mode 100644 index 0000000..a344f80 --- /dev/null +++ b/src/module/muhasebe/routes/muhasebe-ayarlar.ts @@ -0,0 +1,10 @@ +import MuhasebeAyarlar from '../views/MuhasebeAyarlar.vue' + +export default { + path: '/muhasebe/ayarlar', + name: 'MuhasebeAyarlar', + component: MuhasebeAyarlar, + meta: { + authRequired: true + } +} diff --git a/src/module/muhasebe/routes/muhasebe-piyango-detay.ts b/src/module/muhasebe/routes/muhasebe-piyango-detay.ts new file mode 100644 index 0000000..6ceb3a7 --- /dev/null +++ b/src/module/muhasebe/routes/muhasebe-piyango-detay.ts @@ -0,0 +1,10 @@ +import MuhasebePiyangoDetay from '../views/MuhasebePiyangoDetay.vue' + +export default { + path: '/muhasebe/piyango-detay/:piyangoId', + name: 'MuhasebePiyangoDetay', + component: MuhasebePiyangoDetay, + meta: { + authRequired: true + } +} diff --git a/src/module/muhasebe/routes/muhasebe-piyango-listesi.ts b/src/module/muhasebe/routes/muhasebe-piyango-listesi.ts new file mode 100644 index 0000000..2aa9fcd --- /dev/null +++ b/src/module/muhasebe/routes/muhasebe-piyango-listesi.ts @@ -0,0 +1,10 @@ +import MuhasebePiyangoListesi from '../views/MuhasebePiyangoListesi.vue' + +export default { + path: '/muhasebe/piyango-listesi', + name: 'MuhasebePiyangoListesi', + component: MuhasebePiyangoListesi, + meta: { + authRequired: true + } +} diff --git a/src/module/muhasebe/service/muhasebeSettingsService.ts b/src/module/muhasebe/service/muhasebeSettingsService.ts new file mode 100644 index 0000000..3dc0a44 --- /dev/null +++ b/src/module/muhasebe/service/muhasebeSettingsService.ts @@ -0,0 +1,64 @@ +import { defineStore } from 'pinia' +import { ref } from 'vue' +import { useDataStore } from '@/stores/dataStore' +import { useMuhasebeSettingsStore } from '../store/muhasebeSettingsStore' +import { useMuhasebeSettingsValidationStore } from '../validation/muhasebeSettingsValidationStore' + +export const useMuhasebeSettingsService = defineStore('muhasebeSettingsService', () => { + const dataStore = useDataStore() + const muhasebeSettingsStore = useMuhasebeSettingsStore() + const muhasebeSettingsValidationStore = useMuhasebeSettingsValidationStore() + + const loaded = ref(false) + + const SaveMuhasebeSettings = async () => { + if (muhasebeSettingsValidationStore.FormCheck()) { + var res: any + + if (muhasebeSettingsStore.isNew) { + res = await dataStore.dataPost('MuhasebeSettings', { + data: muhasebeSettingsStore.muhasebeSettingsForm + }) + } else { + delete muhasebeSettingsStore.muhasebeSettingsForm.appUser + res = await dataStore.dataPut( + 'MuhasebeSettings/' + muhasebeSettingsStore.muhasebeSettingsForm.id, + { + data: muhasebeSettingsStore.muhasebeSettingsForm + } + ) + } + + if (res !== 'errorfalse') { + muhasebeSettingsStore.isNew = false + muhasebeSettingsValidationStore.formChanged = false + muhasebeSettingsStore.muhasebeSettingsLoaded = false + await GetMuhasebeSettings() + } + } else { + muhasebeSettingsValidationStore.isFormValid = true + } + } + + const GetMuhasebeSettings = async () => { + if (!muhasebeSettingsStore.muhasebeSettingsLoaded) { + let data = await dataStore.dataGet('MuhasebeSettings') + if (data !== 'errorfalse') { + if (data.length === 0) { + muhasebeSettingsStore.ResetForm() + muhasebeSettingsStore.isNew = true + } else { + muhasebeSettingsStore.isNew = false + muhasebeSettingsStore.muhasebeSettingsForm = data[0] + muhasebeSettingsStore.SafeServerData() + } + } + } + } + + return { + loaded, + SaveMuhasebeSettings, + GetMuhasebeSettings + } +}) diff --git a/src/module/muhasebe/store/muhasebeSettingsStore.ts b/src/module/muhasebe/store/muhasebeSettingsStore.ts new file mode 100644 index 0000000..8cad141 --- /dev/null +++ b/src/module/muhasebe/store/muhasebeSettingsStore.ts @@ -0,0 +1,42 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useUsersStore } from '@/stores/usersStore' + +export const useMuhasebeSettingsStore = defineStore('muhasebeSettingsStore', () => { + const usersStore = useUsersStore() + + const muhasebeSettingsBaseForm = reactive>({ + appUserId: usersStore.userId, + izinBedeliOrani: 30, + basvuruBedeli: '10.167,00', + kurumBanka: 'Türkiye Vakıflar Bankası T.A.O.', + kurumBankaSube: 'Ankara Kurumsal', + kurumIBAN: 'TR26 0001 5001 5800 7295 4624 00' + }) + const muhasebeSettingsForm = reactive>({}) + const muhasebeSettingsSafeForm = reactive>({}) + const isNew = ref(false) + const muhasebeSettingsLoaded = ref(false) + + const ResetForm = () => { + Object.assign(muhasebeSettingsForm, muhasebeSettingsBaseForm) + } + const SafeServerData = () => { + Object.assign(muhasebeSettingsSafeForm, muhasebeSettingsForm) + } + + const RestoreData = () => { + Object.assign(muhasebeSettingsForm, muhasebeSettingsSafeForm) + } + + return { + muhasebeSettingsBaseForm, + muhasebeSettingsForm, + muhasebeSettingsSafeForm, + isNew, + muhasebeSettingsLoaded, + ResetForm, + SafeServerData, + RestoreData + } +}) diff --git a/src/module/muhasebe/validation/muhasebeSettingsValidationStore.ts b/src/module/muhasebe/validation/muhasebeSettingsValidationStore.ts new file mode 100644 index 0000000..a05cb2a --- /dev/null +++ b/src/module/muhasebe/validation/muhasebeSettingsValidationStore.ts @@ -0,0 +1,77 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { useMuhasebeSettingsStore } from '../store/muhasebeSettingsStore' + +export const useMuhasebeSettingsValidationStore = defineStore( + 'muhasebeSettingsValidationStore', + () => { + const muhasebeSettingsStore = useMuhasebeSettingsStore() + const validationStore = useValidationStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + muhasebeSettingsStore.muhasebeSettingsForm, + invalidTexts, + 'izinBedeliOrani', + 'Lütfen izin bedeli oranını giriniz.' + ) + if ( + !validationStore.checkEmpty( + muhasebeSettingsStore.muhasebeSettingsForm.izinBedeliOrani + ) + ) { + if ( + Number(muhasebeSettingsStore.muhasebeSettingsForm.izinBedeliOrani) === 0 || + Number(muhasebeSettingsStore.muhasebeSettingsForm.izinBedeliOrani) > 100 + ) { + isFormValid.value = false + invalidTexts['izinBedeliOrani'] = 'Lütfen 0-100 arasında bir değer giriniz.' + } else { + delete invalidTexts['izinBedeliOrani'] + } + } + validationStore.IsFieldEmpty( + muhasebeSettingsStore.muhasebeSettingsForm, + invalidTexts, + 'basvuruBedeli', + 'Lütfen başvuru bedeli tutarını giriniz.' + ) + validationStore.IsFieldEmpty( + muhasebeSettingsStore.muhasebeSettingsForm, + invalidTexts, + 'kurumBanka', + 'Lütfen banka adını giriniz' + ) + validationStore.IsFieldEmpty( + muhasebeSettingsStore.muhasebeSettingsForm, + invalidTexts, + 'kurumBankaSube', + 'Lütfen banka şubesini giriniz.' + ) + validationStore.IsFieldEmpty( + muhasebeSettingsStore.muhasebeSettingsForm, + invalidTexts, + 'kurumIBAN', + 'Lütfen IBAN bilgisini giriniz.' + ) + + isFormValid.value = Object.keys(invalidTexts).length === 0 + + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/muhasebe/views/MuhasebeAyarlar.vue b/src/module/muhasebe/views/MuhasebeAyarlar.vue new file mode 100644 index 0000000..d78026f --- /dev/null +++ b/src/module/muhasebe/views/MuhasebeAyarlar.vue @@ -0,0 +1,17 @@ + + diff --git a/src/module/muhasebe/views/MuhasebePiyangoDetay.vue b/src/module/muhasebe/views/MuhasebePiyangoDetay.vue new file mode 100644 index 0000000..103b062 --- /dev/null +++ b/src/module/muhasebe/views/MuhasebePiyangoDetay.vue @@ -0,0 +1,41 @@ + + diff --git a/src/module/sistem-gunlugu/routes/index.ts b/src/module/sistem-gunlugu/routes/index.ts new file mode 100644 index 0000000..5dbeceb --- /dev/null +++ b/src/module/sistem-gunlugu/routes/index.ts @@ -0,0 +1,5 @@ +import logs from "@/module/sistem-gunlugu/routes/logs"; + +export default [ + logs +] \ No newline at end of file diff --git a/src/module/sistem-gunlugu/routes/logs.ts b/src/module/sistem-gunlugu/routes/logs.ts new file mode 100644 index 0000000..5fcf151 --- /dev/null +++ b/src/module/sistem-gunlugu/routes/logs.ts @@ -0,0 +1,7 @@ +import Logs from "@/module/sistem-gunlugu/views/Logs.vue" + +export default { + path: '/logs', + name: 'Logs', + component: Logs +} \ No newline at end of file diff --git a/src/module/sistem-gunlugu/service/index.ts b/src/module/sistem-gunlugu/service/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/module/sistem-gunlugu/stores/index.ts b/src/module/sistem-gunlugu/stores/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/module/sistem-gunlugu/views/Logs.vue b/src/module/sistem-gunlugu/views/Logs.vue new file mode 100644 index 0000000..1eb43ec --- /dev/null +++ b/src/module/sistem-gunlugu/views/Logs.vue @@ -0,0 +1,49 @@ + + diff --git a/src/module/site-yonetimi/components/form/FormSayfaAyar.vue b/src/module/site-yonetimi/components/form/FormSayfaAyar.vue new file mode 100644 index 0000000..ed2c93d --- /dev/null +++ b/src/module/site-yonetimi/components/form/FormSayfaAyar.vue @@ -0,0 +1,47 @@ + + diff --git a/src/module/site-yonetimi/components/form/FormSayfaBilgileri.vue b/src/module/site-yonetimi/components/form/FormSayfaBilgileri.vue new file mode 100644 index 0000000..e6fbce9 --- /dev/null +++ b/src/module/site-yonetimi/components/form/FormSayfaBilgileri.vue @@ -0,0 +1,67 @@ + + diff --git a/src/module/site-yonetimi/components/form/FormSayfaPicture.vue b/src/module/site-yonetimi/components/form/FormSayfaPicture.vue new file mode 100644 index 0000000..ffc6836 --- /dev/null +++ b/src/module/site-yonetimi/components/form/FormSayfaPicture.vue @@ -0,0 +1,114 @@ + + diff --git a/src/module/site-yonetimi/components/panel/PanelMenuItem.vue b/src/module/site-yonetimi/components/panel/PanelMenuItem.vue new file mode 100644 index 0000000..f011cfd --- /dev/null +++ b/src/module/site-yonetimi/components/panel/PanelMenuItem.vue @@ -0,0 +1,29 @@ + + diff --git a/src/module/site-yonetimi/components/panel/PanelSayfaPicture.vue b/src/module/site-yonetimi/components/panel/PanelSayfaPicture.vue new file mode 100644 index 0000000..0c77bbb --- /dev/null +++ b/src/module/site-yonetimi/components/panel/PanelSayfaPicture.vue @@ -0,0 +1,11 @@ + + diff --git a/src/module/site-yonetimi/routes/ayarlar.ts b/src/module/site-yonetimi/routes/ayarlar.ts new file mode 100644 index 0000000..c2ade77 --- /dev/null +++ b/src/module/site-yonetimi/routes/ayarlar.ts @@ -0,0 +1,10 @@ +import Ayarlar from "@/module/site-yonetimi/views/Ayarlar.vue"; + +export default { + path: '/site-yonetimi/ayarlar', + name: 'SiteAyarlari', + component: Ayarlar, + meta: { + authRequired: true + } +} \ No newline at end of file diff --git a/src/module/site-yonetimi/routes/index.ts b/src/module/site-yonetimi/routes/index.ts new file mode 100644 index 0000000..142a925 --- /dev/null +++ b/src/module/site-yonetimi/routes/index.ts @@ -0,0 +1,8 @@ +import sayfaYeni from '@/module/site-yonetimi/routes/sayfa-yeni' +import sayfDetay from '@/module/site-yonetimi/routes/sayfa-detay' +import sayfaListe from '@/module/site-yonetimi/routes/sayfa-liste' +import menuYonetimi from '@/module/site-yonetimi/routes/menu-yonetimi' +import menuListe from '@/module/site-yonetimi/routes/menu-liste' +import ayarlar from '@/module/site-yonetimi/routes/ayarlar' + +export default [sayfaYeni, sayfDetay, sayfaListe, menuYonetimi, menuListe, ayarlar] diff --git a/src/module/site-yonetimi/routes/menu-liste.ts b/src/module/site-yonetimi/routes/menu-liste.ts new file mode 100644 index 0000000..9e61119 --- /dev/null +++ b/src/module/site-yonetimi/routes/menu-liste.ts @@ -0,0 +1,10 @@ +import MenuListe from "../views/MenuListe.vue"; + +export default { + path: '/site-yonetimi/menu-listesi', + name: 'MenuListe', + component: MenuListe, + meta: { + authRequired: true + } +} \ No newline at end of file diff --git a/src/module/site-yonetimi/routes/menu-yonetimi.ts b/src/module/site-yonetimi/routes/menu-yonetimi.ts new file mode 100644 index 0000000..5d017fe --- /dev/null +++ b/src/module/site-yonetimi/routes/menu-yonetimi.ts @@ -0,0 +1,10 @@ +import MenuYonetimi from "../views/MenuYonetimi.vue"; + +export default { + path: '/site-yonetimi/menu-yonetimi/:menuId', + name: 'MenuYonetimi', + component: MenuYonetimi, + meta: { + authRequired: true + } +} \ No newline at end of file diff --git a/src/module/site-yonetimi/routes/sayfa-detay.ts b/src/module/site-yonetimi/routes/sayfa-detay.ts new file mode 100644 index 0000000..07f2942 --- /dev/null +++ b/src/module/site-yonetimi/routes/sayfa-detay.ts @@ -0,0 +1,10 @@ +import SayfaDetay from '@/module/site-yonetimi/views/SayfaDetay.vue' + +export default { + path: '/sayfalar/detay/:pageId', + name: 'SayfaDetay', + component: SayfaDetay, + meta: { + authRequired: true + } +} diff --git a/src/module/site-yonetimi/routes/sayfa-liste.ts b/src/module/site-yonetimi/routes/sayfa-liste.ts new file mode 100644 index 0000000..25d31b3 --- /dev/null +++ b/src/module/site-yonetimi/routes/sayfa-liste.ts @@ -0,0 +1,10 @@ +import SayfaListesi from '@/module/site-yonetimi/views/SayfaListesi.vue' + +export default { + path: '/site-yonetimi/sayfa-listesi', + name: 'SayfaListe', + component: SayfaListesi, + meta: { + authRequired: true + } +} diff --git a/src/module/site-yonetimi/routes/sayfa-yeni.ts b/src/module/site-yonetimi/routes/sayfa-yeni.ts new file mode 100644 index 0000000..0120e2e --- /dev/null +++ b/src/module/site-yonetimi/routes/sayfa-yeni.ts @@ -0,0 +1,10 @@ +import SayfaYeni from "@/module/site-yonetimi/views/SayfaYeni.vue"; + +export default { + path: '/site-yonetimi/yeni-sayfa', + name: 'SayfaYeni', + component: SayfaYeni, + meta: { + authRequired: true + } +} \ No newline at end of file diff --git a/src/module/site-yonetimi/service/siteManagementMenuService.ts b/src/module/site-yonetimi/service/siteManagementMenuService.ts new file mode 100644 index 0000000..43ea070 --- /dev/null +++ b/src/module/site-yonetimi/service/siteManagementMenuService.ts @@ -0,0 +1,22 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useSiteManagementMenuStore } from '../stores/siteManagementMenuStore' +import { useRoute } from 'vue-router' + +export const useSiteManagementMenuService = defineStore('siteManagementMenuService', () => { + const dataStore = useDataStore() + const siteManagementMenuStore = useSiteManagementMenuStore() + const route = useRoute() + + const GetMenuContentList = async () => { + let data: Record | any = await dataStore.dataGet( + 'Menu/Konum/' + route.params.menuId + ) + + if (data !== 'errorfalse') { + siteManagementMenuStore.menuContentList = data + } + } + + return { GetMenuContentList } +}) diff --git a/src/module/site-yonetimi/service/siteManagementPageService.ts b/src/module/site-yonetimi/service/siteManagementPageService.ts new file mode 100644 index 0000000..340a02d --- /dev/null +++ b/src/module/site-yonetimi/service/siteManagementPageService.ts @@ -0,0 +1,83 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useSiteManagementPageStore } from '../stores/siteManagementPageStore' +import { useSiteManagementPageValidationStore } from '../validation/siteManagementPageValidationStore' +import { useToastStore } from '@/components/global/toastStore' +import { useUsersStore } from '@/stores/usersStore' +import router from '@/router' + +export const useSiteManagementPageService = defineStore( + 'siteManagementPageService', + () => { + const dataStore = useDataStore() + const siteManagementPageStore = useSiteManagementPageStore() + const siteManagementPageValidationStore = useSiteManagementPageValidationStore() + const toastStore = useToastStore() + const usersStore = useUsersStore() + + const GetAllPages = async () => { + if (siteManagementPageStore.allPagesList.length === 0) { + let data: Record | any = await dataStore.dataGet( + 'Page/?pageNumber=0' + ) + + if (data !== 'errorfalse') { + siteManagementPageStore.allPagesList = data + } + } + } + + const GetData = async () => { + siteManagementPageStore.loaded = false + + let data = await dataStore.dataGet('Page/' + siteManagementPageStore.selectedPage) + + if (data !== 'errorfalse') { + Object.assign(siteManagementPageStore.pageForm, data) + Object.assign(siteManagementPageStore.pageSafeForm, data) + + setTimeout(() => { + siteManagementPageStore.loaded = true + }, 30) + setTimeout(() => { + siteManagementPageStore.formChanged = false + }, 50) + } + } + + const SaveData = async () => { + if (siteManagementPageValidationStore.FormCheck()) { + let res: any + + if (siteManagementPageStore.isNew) { + res = await dataStore.dataPost('Page', { + data: siteManagementPageStore.pageForm + }) + } else { + siteManagementPageStore.pageForm.appUserId = usersStore.userId + res = await dataStore.dataPut('Page/' + siteManagementPageStore.pageForm.id, { + data: siteManagementPageStore.pageForm + }) + } + + if (res !== 'errorfalse') { + if (siteManagementPageStore.isNew) + toastStore.AddToast('Sayfa başarıyla kaydedildi', 'success', 5000) + else toastStore.AddToast('Başarıyla kaydedildi', 'success', 5000) + + siteManagementPageStore.formChanged = false + siteManagementPageStore.loaded = false + dataStore.pageDataUpdate = true + if (!siteManagementPageStore.isNew) GetData() + else router.push('/site-yonetimi/sayfa-listesi') + + siteManagementPageStore.isNew = false + } + } else { + siteManagementPageValidationStore.isFormValid = true + } + } + + return { GetAllPages, GetData, SaveData } + } +) diff --git a/src/module/site-yonetimi/stores/siteManagementMenuStore.ts b/src/module/site-yonetimi/stores/siteManagementMenuStore.ts new file mode 100644 index 0000000..2c1739c --- /dev/null +++ b/src/module/site-yonetimi/stores/siteManagementMenuStore.ts @@ -0,0 +1,30 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' + +export const useSiteManagementMenuStore = defineStore('siteManagementMenuStore', () => { + const menuContentList = ref[]>([]) + + const deleteMenuList = ref[]>([]) + const menuControlId = ref(0) + + const safeMenuItemData = reactive>({ + title: '', + konumId: null, + sira: null, + slug: '', + parentMenuId: null, + pageId: null, + isActive: true, + targetKey: false + }) + + const menuItemData = reactive>({}) + + return { + deleteMenuList, + menuContentList, + menuControlId, + menuItemData, + safeMenuItemData + } +}) diff --git a/src/module/site-yonetimi/stores/siteManagementPageStore.ts b/src/module/site-yonetimi/stores/siteManagementPageStore.ts new file mode 100644 index 0000000..7f2d50e --- /dev/null +++ b/src/module/site-yonetimi/stores/siteManagementPageStore.ts @@ -0,0 +1,54 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useUsersStore } from '@/stores/usersStore' +import { useGlobalStore } from '@/stores/globalStore' + +export const useSiteManagementPageStore = defineStore('siteManagementPageStore', () => { + const usersStore = useUsersStore() + const globalStore = useGlobalStore() + + const selectedPage = ref(null) + const allPagesList = ref[]>([]) + const pageBaseForm = reactive>({ + slug: '', + title: '', + content: '', + etiket: '', + parentPageId: null, + status: 1, + appUserId: usersStore.userId + }) + + const pageForm = reactive>({}) + const pageSafeForm = reactive>({}) + const formChanged = ref(false) + const loaded = ref(false) + const isNew = ref(false) + + const ResetForm = () => { + globalStore.ResetObject(pageForm, pageBaseForm) + Object.assign(pageForm, pageBaseForm) + } + const RestoreForm = () => { + Object.assign(pageForm, pageSafeForm) + formChanged.value = false + } + const CreateSlug = () => { + pageForm.slug = globalStore.CreateSlug(pageForm.title) + formChanged.value = true + } + + return { + selectedPage, + allPagesList, + pageBaseForm, + pageForm, + pageSafeForm, + formChanged, + loaded, + isNew, + ResetForm, + RestoreForm, + CreateSlug + } +}) diff --git a/src/module/site-yonetimi/validation/siteManagementMenuValidationStore.ts b/src/module/site-yonetimi/validation/siteManagementMenuValidationStore.ts new file mode 100644 index 0000000..471c6ee --- /dev/null +++ b/src/module/site-yonetimi/validation/siteManagementMenuValidationStore.ts @@ -0,0 +1,30 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { useSiteManagementMenuStore } from '../stores/siteManagementMenuStore' + +export const useSiteManagementMenuValidationStore = defineStore('siteManagementMenuValidationStore', () => { + const siteManagementMenuStore = useSiteManagementMenuStore() + const validationStore = useValidationStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + validationStore.IsFieldEmpty(siteManagementMenuStore.menuItemData,invalidTexts,'title', 'Menü için başlık belirlemelisiniz.') + validationStore.IsFieldEmpty(siteManagementMenuStore.menuItemData,invalidTexts,'slug', 'Tıklandığı zaman açılacak linki yazınız.') + + isFormValid.value = Object.keys(invalidTexts).length === 0 + + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } +}) \ No newline at end of file diff --git a/src/module/site-yonetimi/validation/siteManagementPageValidationStore.ts b/src/module/site-yonetimi/validation/siteManagementPageValidationStore.ts new file mode 100644 index 0000000..7a5137c --- /dev/null +++ b/src/module/site-yonetimi/validation/siteManagementPageValidationStore.ts @@ -0,0 +1,30 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { useSiteManagementPageStore } from '../stores/siteManagementPageStore' + +export const useSiteManagementPageValidationStore = defineStore('siteManagementPageValidationStore', () => { + const siteManagementPageStore = useSiteManagementPageStore() + const validationStore = useValidationStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + validationStore.IsFieldEmpty(siteManagementPageStore.pageForm,invalidTexts,'title', 'Menü için başlık belirlemelisiniz.') + validationStore.IsFieldEmpty(siteManagementPageStore.pageForm,invalidTexts,'slug', 'Tıklandığı zaman açılacak linki yazınız.') + + isFormValid.value = Object.keys(invalidTexts).length === 0 + + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } +}) \ No newline at end of file diff --git a/src/module/site-yonetimi/views/Ayarlar.vue b/src/module/site-yonetimi/views/Ayarlar.vue new file mode 100644 index 0000000..b77c244 --- /dev/null +++ b/src/module/site-yonetimi/views/Ayarlar.vue @@ -0,0 +1,9 @@ + + \ No newline at end of file diff --git a/src/module/site-yonetimi/views/MenuListe.vue b/src/module/site-yonetimi/views/MenuListe.vue new file mode 100644 index 0000000..865fbe3 --- /dev/null +++ b/src/module/site-yonetimi/views/MenuListe.vue @@ -0,0 +1,40 @@ + + diff --git a/src/module/site-yonetimi/views/MenuYonetimi.vue b/src/module/site-yonetimi/views/MenuYonetimi.vue new file mode 100644 index 0000000..9314384 --- /dev/null +++ b/src/module/site-yonetimi/views/MenuYonetimi.vue @@ -0,0 +1,278 @@ + + diff --git a/src/module/site-yonetimi/views/SayfaDetay.vue b/src/module/site-yonetimi/views/SayfaDetay.vue new file mode 100644 index 0000000..ca845e4 --- /dev/null +++ b/src/module/site-yonetimi/views/SayfaDetay.vue @@ -0,0 +1,49 @@ + + diff --git a/src/module/site-yonetimi/views/SayfaListesi.vue b/src/module/site-yonetimi/views/SayfaListesi.vue new file mode 100644 index 0000000..47d4748 --- /dev/null +++ b/src/module/site-yonetimi/views/SayfaListesi.vue @@ -0,0 +1,34 @@ + + diff --git a/src/module/site-yonetimi/views/SayfaYeni.vue b/src/module/site-yonetimi/views/SayfaYeni.vue new file mode 100644 index 0000000..4b0674b --- /dev/null +++ b/src/module/site-yonetimi/views/SayfaYeni.vue @@ -0,0 +1,38 @@ + + diff --git a/src/module/site-yonetimi/views/Slider.vue b/src/module/site-yonetimi/views/Slider.vue new file mode 100644 index 0000000..9930c2d --- /dev/null +++ b/src/module/site-yonetimi/views/Slider.vue @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/module/uyeler/components/TabUyeBilgileri.vue b/src/module/uyeler/components/TabUyeBilgileri.vue new file mode 100644 index 0000000..4be2834 --- /dev/null +++ b/src/module/uyeler/components/TabUyeBilgileri.vue @@ -0,0 +1,76 @@ + + diff --git a/src/module/uyeler/components/TabUyeLoglari.vue b/src/module/uyeler/components/TabUyeLoglari.vue new file mode 100644 index 0000000..401bedb --- /dev/null +++ b/src/module/uyeler/components/TabUyeLoglari.vue @@ -0,0 +1,42 @@ + + diff --git a/src/module/uyeler/components/TabUyeOnayDurumu.vue b/src/module/uyeler/components/TabUyeOnayDurumu.vue new file mode 100644 index 0000000..92c942a --- /dev/null +++ b/src/module/uyeler/components/TabUyeOnayDurumu.vue @@ -0,0 +1,19 @@ + + diff --git a/src/module/uyeler/components/TabUyeOnayDurumuUser.vue b/src/module/uyeler/components/TabUyeOnayDurumuUser.vue new file mode 100644 index 0000000..d57fa02 --- /dev/null +++ b/src/module/uyeler/components/TabUyeOnayDurumuUser.vue @@ -0,0 +1,21 @@ + + diff --git a/src/module/uyeler/components/TabUyeYetkiliOlduguKisiKurum.vue b/src/module/uyeler/components/TabUyeYetkiliOlduguKisiKurum.vue new file mode 100644 index 0000000..a8df0bd --- /dev/null +++ b/src/module/uyeler/components/TabUyeYetkiliOlduguKisiKurum.vue @@ -0,0 +1,138 @@ + + diff --git a/src/module/uyeler/components/TabYetkiliUyeBilgileri.vue b/src/module/uyeler/components/TabYetkiliUyeBilgileri.vue new file mode 100644 index 0000000..cf6fffc --- /dev/null +++ b/src/module/uyeler/components/TabYetkiliUyeBilgileri.vue @@ -0,0 +1,50 @@ + + diff --git a/src/module/uyeler/components/content/UserApproveStates.vue b/src/module/uyeler/components/content/UserApproveStates.vue new file mode 100644 index 0000000..91234e4 --- /dev/null +++ b/src/module/uyeler/components/content/UserApproveStates.vue @@ -0,0 +1,52 @@ + + diff --git a/src/module/uyeler/components/display/FormUyeBilgileriDisplay.vue b/src/module/uyeler/components/display/FormUyeBilgileriDisplay.vue new file mode 100644 index 0000000..639555a --- /dev/null +++ b/src/module/uyeler/components/display/FormUyeBilgileriDisplay.vue @@ -0,0 +1,219 @@ + + diff --git a/src/module/uyeler/components/display/FormUyeIrtibatKisiDisplay.vue b/src/module/uyeler/components/display/FormUyeIrtibatKisiDisplay.vue new file mode 100644 index 0000000..bfad440 --- /dev/null +++ b/src/module/uyeler/components/display/FormUyeIrtibatKisiDisplay.vue @@ -0,0 +1,38 @@ + + diff --git a/src/module/uyeler/components/display/FormUyeIrtibatKisileriDisplay.vue b/src/module/uyeler/components/display/FormUyeIrtibatKisileriDisplay.vue new file mode 100644 index 0000000..2d2a33e --- /dev/null +++ b/src/module/uyeler/components/display/FormUyeIrtibatKisileriDisplay.vue @@ -0,0 +1,63 @@ + + diff --git a/src/module/uyeler/components/display/UyeOnizlemeDisplay.vue b/src/module/uyeler/components/display/UyeOnizlemeDisplay.vue new file mode 100644 index 0000000..95e6545 --- /dev/null +++ b/src/module/uyeler/components/display/UyeOnizlemeDisplay.vue @@ -0,0 +1,282 @@ + + diff --git a/src/module/uyeler/components/form/FormUyeBilgileri.vue b/src/module/uyeler/components/form/FormUyeBilgileri.vue new file mode 100644 index 0000000..53c213a --- /dev/null +++ b/src/module/uyeler/components/form/FormUyeBilgileri.vue @@ -0,0 +1,561 @@ + + diff --git a/src/module/uyeler/components/form/FormUyeDocuments.vue b/src/module/uyeler/components/form/FormUyeDocuments.vue new file mode 100644 index 0000000..800ae02 --- /dev/null +++ b/src/module/uyeler/components/form/FormUyeDocuments.vue @@ -0,0 +1,114 @@ + + diff --git a/src/module/uyeler/components/form/FormUyeIrtibatKisi.vue b/src/module/uyeler/components/form/FormUyeIrtibatKisi.vue new file mode 100644 index 0000000..16c4f1d --- /dev/null +++ b/src/module/uyeler/components/form/FormUyeIrtibatKisi.vue @@ -0,0 +1,92 @@ + + diff --git a/src/module/uyeler/components/form/FormUyeIrtibatKisileri.vue b/src/module/uyeler/components/form/FormUyeIrtibatKisileri.vue new file mode 100644 index 0000000..ff1a6e9 --- /dev/null +++ b/src/module/uyeler/components/form/FormUyeIrtibatKisileri.vue @@ -0,0 +1,110 @@ + + diff --git a/src/module/uyeler/components/form/FormUyeOnay.vue b/src/module/uyeler/components/form/FormUyeOnay.vue new file mode 100644 index 0000000..3a08717 --- /dev/null +++ b/src/module/uyeler/components/form/FormUyeOnay.vue @@ -0,0 +1,122 @@ + + diff --git a/src/module/uyeler/components/form/FormUyeOnayLog.vue b/src/module/uyeler/components/form/FormUyeOnayLog.vue new file mode 100644 index 0000000..d41045d --- /dev/null +++ b/src/module/uyeler/components/form/FormUyeOnayLog.vue @@ -0,0 +1,98 @@ + + diff --git a/src/module/uyeler/components/form/FormUyeOnayaGonder.vue b/src/module/uyeler/components/form/FormUyeOnayaGonder.vue new file mode 100644 index 0000000..457c111 --- /dev/null +++ b/src/module/uyeler/components/form/FormUyeOnayaGonder.vue @@ -0,0 +1,47 @@ + + diff --git a/src/module/uyeler/components/form/FormUyePicture.vue b/src/module/uyeler/components/form/FormUyePicture.vue new file mode 100644 index 0000000..b86c634 --- /dev/null +++ b/src/module/uyeler/components/form/FormUyePicture.vue @@ -0,0 +1,126 @@ + + diff --git a/src/module/uyeler/components/form/FormUyeTipleri.vue b/src/module/uyeler/components/form/FormUyeTipleri.vue new file mode 100644 index 0000000..9507354 --- /dev/null +++ b/src/module/uyeler/components/form/FormUyeTipleri.vue @@ -0,0 +1,19 @@ + + diff --git a/src/module/uyeler/components/panel/PanelUserContact.vue b/src/module/uyeler/components/panel/PanelUserContact.vue new file mode 100644 index 0000000..7b26efd --- /dev/null +++ b/src/module/uyeler/components/panel/PanelUserContact.vue @@ -0,0 +1,48 @@ + + diff --git a/src/module/uyeler/components/panel/PanelUserDocument.vue b/src/module/uyeler/components/panel/PanelUserDocument.vue new file mode 100644 index 0000000..9c2f95b --- /dev/null +++ b/src/module/uyeler/components/panel/PanelUserDocument.vue @@ -0,0 +1,21 @@ + + diff --git a/src/module/uyeler/components/panel/PanelUserPicture.vue b/src/module/uyeler/components/panel/PanelUserPicture.vue new file mode 100644 index 0000000..0c77bbb --- /dev/null +++ b/src/module/uyeler/components/panel/PanelUserPicture.vue @@ -0,0 +1,11 @@ + + diff --git a/src/module/uyeler/components/panel/PanelUyeOnizleme.vue b/src/module/uyeler/components/panel/PanelUyeOnizleme.vue new file mode 100644 index 0000000..2b63e4f --- /dev/null +++ b/src/module/uyeler/components/panel/PanelUyeOnizleme.vue @@ -0,0 +1,24 @@ + + diff --git a/src/module/uyeler/routes/index.ts b/src/module/uyeler/routes/index.ts new file mode 100644 index 0000000..162f7bc --- /dev/null +++ b/src/module/uyeler/routes/index.ts @@ -0,0 +1,7 @@ +import UyeDetay from '@/module/uyeler/routes/uye-detay' +import UyeYetkili from '@/module/uyeler/routes/uye-yetkili' +import UyeYetkiliYeni from '@/module/uyeler/routes/uye-yetkili-yeni' +import UyeListe from '@/module/uyeler/routes/uye-liste' +import UyeTipleri from '@/module/uyeler/routes/uye-tipleri' + +export default [UyeDetay,UyeYetkili,UyeYetkiliYeni, UyeListe, UyeTipleri] diff --git a/src/module/uyeler/routes/uye-detay.ts b/src/module/uyeler/routes/uye-detay.ts new file mode 100644 index 0000000..50664fe --- /dev/null +++ b/src/module/uyeler/routes/uye-detay.ts @@ -0,0 +1,10 @@ +import UyeDetay from '../views/UyeDetay.vue' + +export default { + path: '/uyeler/detay/:uyeId', + name: 'UyeDetay', + component: UyeDetay, + meta: { + authRequired: true + } +} diff --git a/src/module/uyeler/routes/uye-liste.ts b/src/module/uyeler/routes/uye-liste.ts new file mode 100644 index 0000000..1687d09 --- /dev/null +++ b/src/module/uyeler/routes/uye-liste.ts @@ -0,0 +1,11 @@ + +import Uyeler from "@/module/uyeler/views/UyelerListe.vue"; + +export default { + path: '/uyeler/uye-liste', + name: 'UyeListe', + component: Uyeler, + meta: { + authRequired: true + } +} \ No newline at end of file diff --git a/src/module/uyeler/routes/uye-tipleri.ts b/src/module/uyeler/routes/uye-tipleri.ts new file mode 100644 index 0000000..d870902 --- /dev/null +++ b/src/module/uyeler/routes/uye-tipleri.ts @@ -0,0 +1,10 @@ +import UyeTipleri from "@/module/uyeler/views/UyeTipleri.vue"; + +export default { + path:'/uyeler/uye-tipleri', + name:'UyeTipleri', + component: UyeTipleri, + meta: { + authRequired: true + } +} \ No newline at end of file diff --git a/src/module/uyeler/routes/uye-yetkili-yeni.ts b/src/module/uyeler/routes/uye-yetkili-yeni.ts new file mode 100644 index 0000000..8b1dec6 --- /dev/null +++ b/src/module/uyeler/routes/uye-yetkili-yeni.ts @@ -0,0 +1,10 @@ +import UyeYetkili from '../views/UyeYetkili.vue' + +export default { + path: '/uyeler/detay/:uyeId/yetkili-uye/yeni', + name: 'UyeYetkiliYeni', + component: UyeYetkili, + meta: { + authRequired: true + } +} diff --git a/src/module/uyeler/routes/uye-yetkili.ts b/src/module/uyeler/routes/uye-yetkili.ts new file mode 100644 index 0000000..3af8654 --- /dev/null +++ b/src/module/uyeler/routes/uye-yetkili.ts @@ -0,0 +1,10 @@ +import UyeYetkili from '../views/UyeYetkili.vue' + +export default { + path: '/uyeler/detay/:uyeId/yetkili-uye/detay/:altUyeId', + name: 'UyeYetkiliDetay', + component: UyeYetkili, + meta: { + authRequired: true + } +} diff --git a/src/module/uyeler/service/customerDocumentService.ts b/src/module/uyeler/service/customerDocumentService.ts new file mode 100644 index 0000000..f9d8aae --- /dev/null +++ b/src/module/uyeler/service/customerDocumentService.ts @@ -0,0 +1,72 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useCustomerDocumentStore } from '../stores/customerDocumentStore' +import { useCustomerDocumentValidationStore } from '../validation/customerDocumentValidationStore' +import { useUsersStore } from '@/stores/usersStore' + +export const useCustomerDocumentService = defineStore('customerDocumentService', () => { + const dataStore = useDataStore() + const customerDocumentStore = useCustomerDocumentStore() + const customerDocumentValidationStore = useCustomerDocumentValidationStore() + const usersStore = useUsersStore() + + const GetDocumentList = async () => { + customerDocumentStore.customerDocumentsList.splice( + 0, + customerDocumentStore.customerDocumentsList.length + ) + + let dt = await dataStore.dataGet( + 'AppUserDocument/AppUserId/' + usersStore.selectedUserId(), + { + params: { + pageSize: 50 + } + } + ) + if (dt !== 'errorfalse') { + customerDocumentStore.customerDocumentsList.splice( + 0, + customerDocumentStore.customerDocumentsList.length, + ...dt + ) + } + setTimeout(() => { + customerDocumentStore.loaded = true + }, 30) + } + + const SaveDocument = async () => { + if (customerDocumentValidationStore.FormCheck()) { + const formData = new FormData() + formData.append('file', customerDocumentStore.customerDocumentForm.file) + formData.append('title', customerDocumentStore.customerDocumentForm.title) + formData.append('appUserId', String(usersStore.selectedUserId())) + let dt: any + + if (!customerDocumentStore.isUpdate) { + dt = await dataStore.dataPost('AppUserDocument/upload', { + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }) + } else { + dt = await dataStore.dataPut( + 'AppUserDocument/' + customerDocumentStore.customerDocumentForm.id, + { + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + } + ) + } + if (dt !== 'errorfalse') { + await GetDocumentList() + customerDocumentStore.documentPanel = false + customerDocumentStore.isUpdate = false + } + } else { + customerDocumentValidationStore.isFormValid = true + } + } + + return { GetDocumentList, SaveDocument } +}) diff --git a/src/module/uyeler/service/customerIrtibatService.ts b/src/module/uyeler/service/customerIrtibatService.ts new file mode 100644 index 0000000..856d0d6 --- /dev/null +++ b/src/module/uyeler/service/customerIrtibatService.ts @@ -0,0 +1,78 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useCustomerIrtibatStore } from '../stores/customerIrtibatStore' +import { useCustomerIrtibatValidationStore } from '../validation/customerIrtibatValidationStore' +import { useUsersStore } from '@/stores/usersStore' + +export const useCustomerIrtibatService = defineStore('customerIrtibatService', () => { + const dataStore = useDataStore() + const customerIrtibatStore = useCustomerIrtibatStore() + const customerIrtibatValidationStore = useCustomerIrtibatValidationStore() + const usersStore = useUsersStore() + + const GetAllIrtibatList = async (id?: number | string) => { + let userId = id || usersStore.selectedUserId() + let data: Record | any = await dataStore.dataGet( + 'AppUserContactPerson/GetContactPersonAppUserId/' + userId + '?pageNumber=0' + ) + + if (data !== 'errorfalse') { + customerIrtibatStore.customerAllIrtibatList = data.data + } + setTimeout(() => { + customerIrtibatStore.loaded = true + }, 30) + } + + const GetIrtibat = async (id?: number | string) => { + customerIrtibatStore.loaded = false + let userId = id || usersStore.selectedUserId() + let dt = await dataStore.dataGet( + 'AppUserContactPerson/GetContactPersonAppUserId/' + userId + ) + if (dt !== 'errorfalse') { + if (dt.data.length === 0) customerIrtibatStore.isNew = true + + if (customerIrtibatStore.isNew) { + customerIrtibatStore.ResetForm() + } else { + Object.assign(customerIrtibatStore.customerIrtibatForm, dt.data[0]) + customerIrtibatStore.SetSafeIrtibatData() + } + } + + setTimeout(() => { + customerIrtibatStore.loaded = true + }, 30) + } + + const SaveIrtibat = async () => { + if (customerIrtibatValidationStore.FormCheck()) { + var res: any + + if (customerIrtibatStore.isNew) { + res = await dataStore.dataPost('AppUserContactPerson', { + data: customerIrtibatStore.customerIrtibatForm + }) + } else { + res = await dataStore.dataPut( + 'AppUserContactPerson/' + customerIrtibatStore.customerIrtibatForm.id, + { + data: customerIrtibatStore.customerIrtibatForm + } + ) + } + + if (res !== 'errorfalse') { + customerIrtibatStore.isNew = false + customerIrtibatValidationStore.formChanged = false + customerIrtibatStore.refreshList = true + customerIrtibatStore.irtibatPanel = false + } + } else { + customerIrtibatValidationStore.isFormValid = true + } + } + + return { GetAllIrtibatList, GetIrtibat, SaveIrtibat } +}) diff --git a/src/module/uyeler/service/customerService.ts b/src/module/uyeler/service/customerService.ts new file mode 100644 index 0000000..40c15c7 --- /dev/null +++ b/src/module/uyeler/service/customerService.ts @@ -0,0 +1,32 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useCustomerStore } from '../stores/customerStore' +import { useUsersStore } from '@/stores/usersStore' +import { useGlobalStore } from '@/stores/globalStore' + +export const useCustomerService = defineStore('customerService', () => { + const dataStore = useDataStore() + const customerStore = useCustomerStore() + const usersStore = useUsersStore() + const globalStore = useGlobalStore() + + const GetCustomerOnayIslemTipleri = async () => { + if (customerStore.onayIslemTipleri.length === 0) { + let data = await dataStore.dataGet('AppUserOnayDurumuIslemTipi') + customerStore.onayIslemTipleri = data + } + } + const GetCustomerData = async () => { + let data: Record | any = await dataStore.dataGet( + 'Auth/userbyuserid/' + usersStore.selectedUserId() + ) + if (data !== 'errorfalse') { + Object.assign(customerStore.customerForm, data) + usersStore.userMail = data.email + globalStore.selCustomerType = data.basvuruTipId + customerStore.loaded = true + } + } + + return { GetCustomerOnayIslemTipleri, GetCustomerData } +}) diff --git a/src/module/uyeler/service/uyeIrtibatKisiService.ts b/src/module/uyeler/service/uyeIrtibatKisiService.ts new file mode 100644 index 0000000..1d25aad --- /dev/null +++ b/src/module/uyeler/service/uyeIrtibatKisiService.ts @@ -0,0 +1,22 @@ +import { defineStore } from 'pinia' +import { useDataStore } from '@/stores/dataStore' +import { useUsersStore } from '@/stores/usersStore' +import { useUyeIrtibatKisiStore } from '../stores/uyeIrtibatKisiStore' + +export const useUyeIrtibatKisiService = defineStore('uyeIrtibatKisiService', () => { + const dataStore = useDataStore() + const usersStore = useUsersStore() + const uyeIrtibatKisiStore = useUyeIrtibatKisiStore() + + const GetAllIrtibatKisiler = async (id?: number | string) => { + let userId = id || usersStore.selectedUserId() + let data: Record | any = await dataStore.dataGet( + 'AppUserContactPerson/GetContactPersonAppUserId/' + userId + '?pageNumber=0' + ) + + if (data !== 'errorfalse') { + uyeIrtibatKisiStore.uyeAllIrtibatKisiList = data.data + } + } + return { GetAllIrtibatKisiler } +}) diff --git a/src/module/uyeler/stores/UyeBilgileriStore.ts b/src/module/uyeler/stores/UyeBilgileriStore.ts new file mode 100644 index 0000000..7262096 --- /dev/null +++ b/src/module/uyeler/stores/UyeBilgileriStore.ts @@ -0,0 +1,471 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { useGlobalDataStore } from '@/stores/globalDataStore' +import { useRoute } from 'vue-router' + +export const useUyeBilgileriStore = defineStore('uyeBilgileriStore', () => { + const validationStore = useValidationStore() + const globalDataStore = useGlobalDataStore() + const route = useRoute() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const ilceList = ref[]>([]) + const mahalleList = ref[]>([]) + + const baseCustomerData = reactive>({ + basvuruTipId: null, + gercekAdi: '', + gercekSoyadi: '', + gercekTCKN: '', + gercekVergiDairesi: '', + gercekVergiNo: '', + gercekOdaKayitNo: '', + gercekTicariUnvan: '', + tuzelUnvan: '', + tuzelVergiDairesi: '', + tuzelVergiNo: '', + tuzelSicilNo: '', + dernekUnvan: '', + dernekVergiDairesi: '', + dernekVergiNo: '', + dernekSicilNo: '', + sirketUnvan: '', + sirketVergiDairesi: '', + sirketVergiNo: '', + sirketSicilNo: '', + sirketMersis: '', + kamuUnvan: '', + kamuVergiDairesi: '', + kamuVergiNo: '', + kamuSicilNo: '', + email: '', + telefonNumarasi: '', + kvkk: false, + uyelikSozlesmesi: false, + ilId: null, + ilceId: null, + mahalleId: null, + postaKodu: '', + adres: '', + internetSitesi: '', + islemTipi: null, + aciklama: '', + parentUserId: null, + password: '', + confirmPassword: '' + }) + + const formData = reactive>({}) + const safeData = reactive>({}) + + const ResetStore = () => { + if (route.meta.authpage as boolean) { + baseCustomerData.kvkk = false + baseCustomerData.uyelikSozlesmesi = false + baseCustomerData.password = '' + baseCustomerData.confirmPassword = '' + } + Object.assign(formData, baseCustomerData) + Object.assign(invalidTexts, {}) + ilceList.value = [] + mahalleList.value = [] + formChanged.value = false + isFormValid.value = true + } + + const ChangeKullaniciTipi = (e: Event, d: string | number) => { + /*var gercekData = { + gercekAdi: '', + gercekSoyadi: '', + gercekTCKN: '', + gercekVergiDairesi:'', + gercekVergiNo:'', + gercekTicariUnvan: '' + } + var tuzelData = { + tuzelUnvan: '', + tuzelVergiDairesi: '', + tuzelVergiNo: '', + tuzelSicilNo: '' + } + var dernekData = { + dernekUnvan: '', + dernekVergiDairesi: '', + dernekVergiNo: '', + dernekSicilNo: '' + } + if (d === 1) { + Object.assign(formData, gercekData) + } else { + Object.keys(gercekData).forEach((key) => { + delete formData[key] + }) + } + if (d === 2) { + Object.assign(formData, tuzelData) + } else { + Object.keys(tuzelData).forEach((key) => { + delete formData[key] + }) + } + if (d === 3) { + Object.assign(formData, dernekData) + } else { + Object.keys(dernekData).forEach((key) => { + delete formData[key] + }) + }*/ + formChanged.value = true + } + + const ResetFormItems = () => { + if (formData.basvuruTipId === 18) { + ;(formData.tuzelUnvan = ''), + (formData.tuzelVergiDairesi = ''), + (formData.tuzelVergiNo = ''), + (formData.tuzelSicilNo = ''), + (formData.dernekUnvan = ''), + (formData.dernekVergiDairesi = ''), + (formData.dernekVergiNo = ''), + (formData.dernekSicilNo = ''), + (formData.sirketUnvan = ''), + (formData.sirketVergiDairesi = ''), + (formData.sirketVergiNo = ''), + (formData.sirketSicilNo = ''), + (formData.sirketMersis = ''), + (formData.kamuUnvan = ''), + (formData.kamuVergiDairesi = ''), + (formData.kamuVergiNo = ''), + (formData.kamuSicilNo = '') + } else if (formData.basvuruTipId === 21) { + ;(formData.gercekAdi = ''), + (formData.gercekSoyadi = ''), + (formData.gercekTCKN = ''), + (formData.gercekVergiDairesi = ''), + (formData.gercekVergiNo = ''), + (formData.gercekOdaKayitNo = ''), + (formData.gercekTicariUnvan = ''), + (formData.dernekUnvan = ''), + (formData.dernekVergiDairesi = ''), + (formData.dernekVergiNo = ''), + (formData.dernekSicilNo = ''), + (formData.sirketUnvan = ''), + (formData.sirketVergiDairesi = ''), + (formData.sirketVergiNo = ''), + (formData.sirketSicilNo = ''), + (formData.sirketMersis = ''), + (formData.kamuUnvan = ''), + (formData.kamuVergiDairesi = ''), + (formData.kamuVergiNo = ''), + (formData.kamuSicilNo = '') + } else if (formData.basvuruTipId === 22) { + ;(formData.gercekAdi = ''), + (formData.gercekSoyadi = ''), + (formData.gercekTCKN = ''), + (formData.gercekVergiDairesi = ''), + (formData.gercekVergiNo = ''), + (formData.gercekOdaKayitNo = ''), + (formData.gercekTicariUnvan = ''), + (formData.tuzelUnvan = ''), + (formData.tuzelVergiDairesi = ''), + (formData.tuzelVergiNo = ''), + (formData.tuzelSicilNo = ''), + (formData.sirketUnvan = ''), + (formData.sirketVergiDairesi = ''), + (formData.sirketVergiNo = ''), + (formData.sirketSicilNo = ''), + (formData.sirketMersis = ''), + (formData.kamuUnvan = ''), + (formData.kamuVergiDairesi = ''), + (formData.kamuVergiNo = ''), + (formData.kamuSicilNo = '') + } else if (formData.basvuruTipId === 23) { + ;(formData.gercekAdi = ''), + (formData.gercekSoyadi = ''), + (formData.gercekTCKN = ''), + (formData.gercekVergiDairesi = ''), + (formData.gercekVergiNo = ''), + (formData.gercekOdaKayitNo = ''), + (formData.gercekTicariUnvan = ''), + (formData.tuzelUnvan = ''), + (formData.tuzelVergiDairesi = ''), + (formData.tuzelVergiNo = ''), + (formData.tuzelSicilNo = ''), + (formData.dernekUnvan = ''), + (formData.dernekVergiDairesi = ''), + (formData.dernekVergiNo = ''), + (formData.dernekSicilNo = ''), + (formData.kamuUnvan = ''), + (formData.kamuVergiDairesi = ''), + (formData.kamuVergiNo = ''), + (formData.kamuSicilNo = '') + } else if (formData.basvuruTipId === 26) { + ;(formData.gercekAdi = ''), + (formData.gercekSoyadi = ''), + (formData.gercekTCKN = ''), + (formData.gercekVergiDairesi = ''), + (formData.gercekVergiNo = ''), + (formData.gercekOdaKayitNo = ''), + (formData.gercekTicariUnvan = ''), + (formData.tuzelUnvan = ''), + (formData.tuzelVergiDairesi = ''), + (formData.tuzelVergiNo = ''), + (formData.tuzelSicilNo = ''), + (formData.dernekUnvan = ''), + (formData.dernekVergiDairesi = ''), + (formData.dernekVergiNo = ''), + (formData.dernekSicilNo = ''), + (formData.sirketUnvan = ''), + (formData.sirketVergiDairesi = ''), + (formData.sirketVergiNo = ''), + (formData.sirketSicilNo = ''), + (formData.sirketMersis = '') + } + } + const SetIlIlce = () => { + if ( + formData.ilceId !== undefined && + formData.ilceId !== null && + formData.ilceId !== '' + ) { + let ilO = globalDataStore.ilList.filter((v: Record) => { + return v.id === formData.ilId + }) + ilceList.value.splice(0, ilceList.value.length, ...(ilO[0]['ilceler'] as Record[])) + } else { + formData.ilceId = '' + } + + if ( + formData.mahalleId !== undefined && + formData.mahalleId !== null && + formData.mahalleId !== '' + ) { + let mahalleO = ilceList.value.filter((v: Record) => { + return v.id === formData.ilceId + }) + mahalleList.value.splice(0, mahalleList.value.length, ...mahalleO[0]['mahalleler']) + } else { + formData.mahalleId = '' + } + } + const SetbasvuruTip = () => { + if ( + formData.basvuruTipId === undefined && + formData.basvuruTipId === null && + formData.basvuruTipId === '' + ) + formData.basvuruTipId = 0 + } + + const IsFieldEmpty = (field: string, text: string) => { + if (validationStore.checkEmpty(formData[field])) { + invalidTexts[field] = text + isFormValid.value = false + } else { + delete invalidTexts[field] + } + } + + const RestoreForm = () => { + Object.assign(formData, safeData) + formChanged.value = false + } + + const FormCheck = (): boolean => { + IsFieldEmpty('basvuruTipId', 'Lütfen başvuru tipini seçiniz') + + if (validationStore.checkEmpty(formData.email)) { + invalidTexts.email = 'Eposta alanı boş bırakılamaz.' + isFormValid.value = false + } else { + delete invalidTexts.email + if (!validationStore.checkEmail(formData.email)) { + invalidTexts.email = + 'Lütfen eposta adresinizi doğru formatta giriniz. Örn: isim@alanadi.td' + isFormValid.value = false + } else { + delete invalidTexts.email + } + } + + IsFieldEmpty('telefonNumarasi', 'Telefon alanı boş bırakılamaz') + if (!validationStore.checkEmpty(formData.telefonNumarasi)) { + if (formData.telefonNumarasi.length !== 10) { + invalidTexts.telefonNumarasi = + 'Telefon numaranızı başında 0 olmadan 10 hane olarak giriniz.' + isFormValid.value = false + } else { + delete invalidTexts.telefonNumarasi + } + } + IsFieldEmpty('ilId', 'Lütfen il seçiniz') + IsFieldEmpty('ilceId', 'Lütfen ilçe seçiniz') + IsFieldEmpty('mahalleId', 'Lütfen mahalle seçiniz') + IsFieldEmpty('adres', 'Adres alanı boş bırakılamaz') + + if (formData.basvuruTipId === 18) { + IsFieldEmpty('gercekAdi', 'Bu alan boş bırakılamaz') + IsFieldEmpty('gercekSoyadi', 'Bu alan boş bırakılamaz') + IsFieldEmpty('gercekTCKN', 'Bu alan boş bırakılamaz') + if (!validationStore.checkEmpty(formData.gercekTCKN)) { + if (formData.gercekTCKN.length !== 11) { + invalidTexts.gercekTCKN = + 'Lütfen 11 hane olacak şekilde TC Kimlik Numaranızı yazınız' + isFormValid.value = false + } else { + delete invalidTexts.gercekTCKN + } + } + IsFieldEmpty('gercekVergiDairesi', 'Bu alan boş bırakılamaz') + IsFieldEmpty('gercekVergiNo', 'Bu alan boş bırakılamaz') + if (!validationStore.checkEmpty(formData.gercekVergiNo)) { + if (formData.gercekVergiNo.length !== 11) { + invalidTexts.gercekVergiNo = 'Vergi numaranızı 11 hane olarak giriniz.' + isFormValid.value = false + } else { + delete invalidTexts.gercekVergiNo + } + } + IsFieldEmpty('gercekOdaKayitNo', 'Bu alan boş bırakılamaz') + } + if (formData.basvuruTipId === 21) { + IsFieldEmpty('tuzelUnvan', 'Bu alan boş bırakılamaz') + IsFieldEmpty('tuzelVergiDairesi', 'Bu alan boş bırakılamaz') + IsFieldEmpty('tuzelVergiNo', 'Bu alan boş bırakılamaz') + if (!validationStore.checkEmpty(formData.tuzelVergiNo)) { + if (formData.tuzelVergiNo.length < 10 || formData.tuzelVergiNo.length > 11) { + invalidTexts.tuzelVergiNo = 'Vergi numaranızı kontrol ediniz.' + isFormValid.value = false + } else { + delete invalidTexts.tuzelVergiNo + } + } + IsFieldEmpty('tuzelSicilNo', 'Bu alan boş bırakılamaz') + } + + if (formData.basvuruTipId === 22) { + IsFieldEmpty('dernekUnvan', 'Bu alan boş bırakılamaz') + IsFieldEmpty('dernekVergiDairesi', 'Bu alan boş bırakılamaz') + IsFieldEmpty('dernekVergiNo', 'Bu alan boş bırakılamaz') + if (!validationStore.checkEmpty(formData.dernekVergiNo)) { + if (formData.dernekVergiNo.length < 10 || formData.dernekVergiNo.length > 11) { + invalidTexts.dernekVergiNo = 'Vergi numaranızı kontrol ediniz' + isFormValid.value = false + } else { + delete invalidTexts.dernekVergiNo + } + } + IsFieldEmpty('dernekSicilNo', 'Bu alan boş bırakılamaz') + } + + if (formData.basvuruTipId === 23) { + IsFieldEmpty('sirketUnvan', 'Bu alan boş bırakılamaz') + IsFieldEmpty('sirketVergiDairesi', 'Bu alan boş bırakılamaz') + IsFieldEmpty('sirketVergiNo', 'Bu alan boş bırakılamaz') + + if (!validationStore.checkEmpty(formData.sirketVergiNo)) { + if (formData.sirketVergiNo.length < 10 || formData.sirketVergiNo.length > 11) { + invalidTexts.sirketVergiNo = 'Vergi numaranızı kontrol ediniz' + isFormValid.value = false + } else { + delete invalidTexts.sirketVergiNo + } + } + IsFieldEmpty('sirketSicilNo', 'Bu alan boş bırakılamaz') + } + + if (formData.basvuruTipId === 26) { + IsFieldEmpty('kamuUnvan', 'Bu alan boş bırakılamaz') + IsFieldEmpty('kamuVergiDairesi', 'Bu alan boş bırakılamaz') + IsFieldEmpty('kamuVergiNo', 'Bu alan boş bırakılamaz') + if (!validationStore.checkEmpty(formData.kamuVergiNo)) { + if (formData.kamuVergiNo.length < 10 || formData.kamuVergiNo.length > 11) { + invalidTexts.kamuVergiNo = 'Vergi numaranızı kontrol ediniz.' + isFormValid.value = false + } else { + delete invalidTexts.kamuVergiNo + } + } + } + + if (!validationStore.checkEmpty(formData.postaKodu)) { + if (formData.postaKodu.length !== 5) { + invalidTexts.postaKodu = 'Posta kodu 5 hane olmalıdır.' + isFormValid.value = false + } else { + delete invalidTexts.postaKodu + } + } + + if (route.meta.authpage as boolean) { + IsFieldEmpty('password', 'Bir parola belirlemelisiniz') + IsFieldEmpty( + 'confirmPassword', + 'Lütfen bu alana girdiğiniz parolayı tekrar giriniz.' + ) + + if (!validationStore.checkEmpty(formData.password)) { + if (formData.password.length < 6) { + invalidTexts.password = 'Girdiğiniz parola en az 6 haneli olmalıdır.' + } else { + delete invalidTexts.password + } + } + + if (!validationStore.checkEmpty(formData.confirmPassword)) { + if (formData.confirmPassword.length < 6) { + invalidTexts.confirmPassword = + 'Girdiğiniz parola doğrulama değeri en az 6 haneli olmalıdır.' + } else { + delete invalidTexts.password + } + + if (formData.confirmPassword !== formData.password) { + invalidTexts.confirmPassword = + 'Girdiğiniz değer Parola alanı ile aynı olmalıdır' + isFormValid.value = false + } else { + delete invalidTexts.confirmPassword + } + } + + if (!formData.kvkk) { + invalidTexts.kvkk = 'KVKK aydınlatma metnini kabul etmelisiniz' + isFormValid.value = false + } else { + delete invalidTexts.kvkk + } + + if (!formData.uyelikSozlesmesi) { + invalidTexts.uyelikSozlesmesi = 'Üyelik sözleşmesini kabul etmelisiniz' + isFormValid.value = false + } else { + delete invalidTexts.uyelikSozlesmesi + } + } + + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + ilceList, + mahalleList, + formData, + safeData, + ResetStore, + ChangeKullaniciTipi, + SetIlIlce, + SetbasvuruTip, + ResetFormItems, + RestoreForm, + FormCheck + } +}) diff --git a/src/module/uyeler/stores/customerDocumentStore.ts b/src/module/uyeler/stores/customerDocumentStore.ts new file mode 100644 index 0000000..74e06c9 --- /dev/null +++ b/src/module/uyeler/stores/customerDocumentStore.ts @@ -0,0 +1,34 @@ +import { defineStore } from 'pinia' +import { ref,reactive } from 'vue' +import { useUsersStore } from '@/stores/usersStore' + +export const useCustomerDocumentStore = defineStore('customerDocumentStore', () => { + const usersStore = useUsersStore() + + const customerDocumentsList = ref[]>([]) + const customerDocumentBaseForm = reactive>({ + file: null, + cekilisId: usersStore.selectedUserId(), + title: '' + }) + const customerDocumentForm = reactive>({}) + const customerDocumentSafeForm = reactive>({}) + const isUpdate = ref(false) + const documentPanel = ref(false) + const loaded = ref(false) + + const ResetForm = () => { + Object.assign(customerDocumentForm, customerDocumentBaseForm) + } + + return { + customerDocumentsList, + customerDocumentBaseForm, + customerDocumentForm, + customerDocumentSafeForm, + isUpdate, + documentPanel, + loaded, + ResetForm + } +}) diff --git a/src/module/uyeler/stores/customerIrtibatStore.ts b/src/module/uyeler/stores/customerIrtibatStore.ts new file mode 100644 index 0000000..401fb64 --- /dev/null +++ b/src/module/uyeler/stores/customerIrtibatStore.ts @@ -0,0 +1,67 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useUsersStore } from '@/stores/usersStore' +import { useCustomerIrtibatValidationStore } from '../validation/customerIrtibatValidationStore' + +export const useCustomerIrtibatStore = defineStore('customerIrtibatStore', () => { + const usersStore = useUsersStore() + const customerIrtibatValidationStore = useCustomerIrtibatValidationStore() + + const customerAllIrtibatList = ref[]>([]) + + const customerIrtibatBaseForm = reactive>({ + appUserId: usersStore.selectedUserId(), + firstName: '', + lastName: '', + email: '', + phone: '' + }) + + const customerIrtibatForm = reactive>({}) + const customerIrtibatSafeForm = reactive>({}) + const isUpdate = ref(false) + const refreshList = ref(false) + const irtibatPanel = ref(false) + const loaded = ref(false) + const totalIrtibat = ref(0) + const isNew = ref(false) + + const ResetForm = () => { + Object.assign(customerIrtibatForm, customerIrtibatBaseForm) + customerIrtibatForm.appUserId = usersStore.selectedUserId() + delete customerIrtibatForm.id + } + const SetSafeIrtibatData = () => { + Object.assign(customerIrtibatSafeForm, customerIrtibatForm) + } + const RestoreData = () => { + Object.assign(customerIrtibatForm, customerIrtibatSafeForm) + } + const CancelSave = () => { + RestoreData() + customerIrtibatValidationStore.formChanged = false + } + const ResetData = () => { + isNew.value = false + isUpdate.value = false + loaded.value = false + Object.assign(customerIrtibatForm, {}) + } + return { + customerAllIrtibatList, + customerIrtibatBaseForm, + customerIrtibatForm, + customerIrtibatSafeForm, + isUpdate, + refreshList, + irtibatPanel, + loaded, + totalIrtibat, + isNew, + ResetForm, + SetSafeIrtibatData, + RestoreData, + CancelSave, + ResetData + } +}) diff --git a/src/module/uyeler/stores/customerStore.ts b/src/module/uyeler/stores/customerStore.ts new file mode 100644 index 0000000..dd8c5fe --- /dev/null +++ b/src/module/uyeler/stores/customerStore.ts @@ -0,0 +1,136 @@ +import { defineStore } from 'pinia' +import { ref, reactive, computed } from 'vue' +import { useUsersStore } from '@/stores/usersStore' + +export const useCustomerStore = defineStore('customerStore', () => { + const usersStore = useUsersStore() + + const customerMail = ref('') + const selectedCustomer = ref(0) + const selectedSubCustomer = ref(0) + const customerApproveId = ref(null) + const subCustomerApproveId = ref(null) + const onayIslemTipleri = ref[]>([]) + const uyeOnayRefresh = ref(false) + + const customerBaseForm = reactive>({ + appUserId: usersStore.selectedUserId, + firstName: '', + lastName: '', + email: '', + phone: '' + }) + const customerForm = reactive>({}) + const customerSafeForm = reactive>({}) + const isUpdate = ref(false) + const loaded = ref(false) + const isNew = ref(false) + + const GetUnvan = (v: Record): string => { + switch (v.basvuruTipId) { + case 18: { + return `${v.gercekAdi} ${v.gercekSoyadi} (${v.gercekTicariUnvan})` + } + case 21: { + return v.tuzelUnvan + } + case 22: { + return v.dernekUnvan + } + case 23: { + return v.sirketUnvan + } + case 26: { + return v.kamuUnvan + } + default: { + return '' + } + } + } + + const CellStatusClass = (d: number): string => { + switch (d) { + case 1: { + return 'back-grad-waiting' + } + case 2: { + return 'back-grad-waiting' + } + case 3: { + return 'back-grad-next' + } + case 4: { + return 'back-grad-ok' + } + case 5: { + return 'back-grad-alert' + } + case 6: { + return 'back-grad-beforeok' + } + case 7: { + return 'back-grad-change' + } + default: { + return 'back-grad-new' + } + } + } + + const CellStatusName = (d: number): string => { + const tip: Record = onayIslemTipleri.value.filter( + (v: Record) => v.id === d + ) + + if (tip[0] !== undefined) return tip[0].tipAdi + else return 'Yeni Üye' + } + + const customerApproved = computed(() => { + return customerApproveId.value === 4 + }) + + const subCustomerApproved = computed(() => { + return subCustomerApproveId.value === 4 + }) + + const ResetForm = () => { + Object.assign(customerForm, customerBaseForm) + } + const SetSafeIrtibatData = () => { + Object.assign(customerSafeForm, customerForm) + } + const RestoreData = () => { + Object.assign(customerForm, customerSafeForm) + } + const CancelSave = () => { + RestoreData() + //customerIrtibatValidationStore.formChanged = false + } + + return { + customerMail, + selectedCustomer, + selectedSubCustomer, + customerApproveId, + customerApproved, + subCustomerApproveId, + subCustomerApproved, + onayIslemTipleri, + uyeOnayRefresh, + customerBaseForm, + customerForm, + customerSafeForm, + isUpdate, + loaded, + isNew, + GetUnvan, + CellStatusClass, + CellStatusName, + ResetForm, + SetSafeIrtibatData, + RestoreData, + CancelSave + } +}) diff --git a/src/module/uyeler/stores/uyeIrtibatKisiStore.ts b/src/module/uyeler/stores/uyeIrtibatKisiStore.ts new file mode 100644 index 0000000..9f722b5 --- /dev/null +++ b/src/module/uyeler/stores/uyeIrtibatKisiStore.ts @@ -0,0 +1,8 @@ +import { defineStore } from 'pinia' +import { ref } from 'vue' + +export const useUyeIrtibatKisiStore = defineStore('uyeIrtibatKisiStore', () => { + const uyeAllIrtibatKisiList = ref[]>([]) + + return { uyeAllIrtibatKisiList } +}) diff --git a/src/module/uyeler/validation/customerDocumentValidationStore.ts b/src/module/uyeler/validation/customerDocumentValidationStore.ts new file mode 100644 index 0000000..e64266e --- /dev/null +++ b/src/module/uyeler/validation/customerDocumentValidationStore.ts @@ -0,0 +1,44 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { useCustomerDocumentStore } from '../stores/customerDocumentStore' + +export const useCustomerDocumentValidationStore = defineStore( + 'customerDocumentValidationStore', + () => { + const customerDocumentStore = useCustomerDocumentStore() + const validationStore = useValidationStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + customerDocumentStore.customerDocumentForm, + invalidTexts, + 'title', + 'Döküman için bir başlık belirtmelisiniz.' + ) + + validationStore.IsFieldEmpty( + customerDocumentStore.customerDocumentForm, + invalidTexts, + 'file', + 'Bir döküman eklemelisiniz.' + ) + + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/uyeler/validation/customerIrtibatValidationStore.ts b/src/module/uyeler/validation/customerIrtibatValidationStore.ts new file mode 100644 index 0000000..7c7c0fd --- /dev/null +++ b/src/module/uyeler/validation/customerIrtibatValidationStore.ts @@ -0,0 +1,78 @@ +import { defineStore } from 'pinia' +import { ref, reactive } from 'vue' +import { useValidationStore } from '@/stores/validationStore' +import { useCustomerIrtibatStore } from '../stores/customerIrtibatStore' + +export const useCustomerIrtibatValidationStore = defineStore( + 'customerIrtibatValidationStore', + () => { + const customerIrtibatStore = useCustomerIrtibatStore() + const validationStore = useValidationStore() + + const formChanged = ref(false) + const isFormValid = ref(true) + const invalidTexts = reactive>({}) + + const FormCheck = (): boolean => { + Object.assign(invalidTexts, {}) + + validationStore.IsFieldEmpty( + customerIrtibatStore.customerIrtibatForm, + invalidTexts, + 'firstName', + 'Lütfen adını giriniz.' + ) + + validationStore.IsFieldEmpty( + customerIrtibatStore.customerIrtibatForm, + invalidTexts, + 'lastName', + 'Lütfen soyadını giriniz.' + ) + + validationStore.IsFieldEmpty( + customerIrtibatStore.customerIrtibatForm, + invalidTexts, + 'phone', + 'Lütfen telefon numarasını giriniz' + ) + + if (!validationStore.checkEmpty(customerIrtibatStore.customerIrtibatForm.email)) { + if (customerIrtibatStore.customerIrtibatForm.phone.length !== 10) { + isFormValid.value = false + invalidTexts.phone = + 'Lütfen telefon numarasını başında 0 olmadan 10 haneli olarak giriniz.' + } else { + delete invalidTexts.phone + } + } + + validationStore.IsFieldEmpty( + customerIrtibatStore.customerIrtibatForm, + invalidTexts, + 'email', + 'Lütfen e-posta adresini giriniz' + ) + + if (!validationStore.checkEmpty(customerIrtibatStore.customerIrtibatForm.email)) { + if (!validationStore.checkEmail(customerIrtibatStore.customerIrtibatForm.email)) { + isFormValid.value = false + invalidTexts.email = + 'Lütfen eposta adresinizi doğru formatta giriniz. Örn: isim@alanadi.td' + } else { + delete invalidTexts.email + } + } + + isFormValid.value = Object.keys(invalidTexts).length === 0 + return isFormValid.value + } + + return { + formChanged, + isFormValid, + invalidTexts, + FormCheck + } + } +) diff --git a/src/module/uyeler/views/UyeDetay.vue b/src/module/uyeler/views/UyeDetay.vue new file mode 100644 index 0000000..040bcd2 --- /dev/null +++ b/src/module/uyeler/views/UyeDetay.vue @@ -0,0 +1,82 @@ + + diff --git a/src/module/uyeler/views/UyeProfil.vue b/src/module/uyeler/views/UyeProfil.vue new file mode 100644 index 0000000..14ca240 --- /dev/null +++ b/src/module/uyeler/views/UyeProfil.vue @@ -0,0 +1,58 @@ + + diff --git a/src/module/uyeler/views/UyeTipleri.vue b/src/module/uyeler/views/UyeTipleri.vue new file mode 100644 index 0000000..b6357b1 --- /dev/null +++ b/src/module/uyeler/views/UyeTipleri.vue @@ -0,0 +1,12 @@ + + diff --git a/src/module/uyeler/views/UyeYetkili.vue b/src/module/uyeler/views/UyeYetkili.vue new file mode 100644 index 0000000..c23978d --- /dev/null +++ b/src/module/uyeler/views/UyeYetkili.vue @@ -0,0 +1,42 @@ + + diff --git a/src/module/uyeler/views/UyelerListe.vue b/src/module/uyeler/views/UyelerListe.vue new file mode 100644 index 0000000..eafc8c6 --- /dev/null +++ b/src/module/uyeler/views/UyelerListe.vue @@ -0,0 +1,134 @@ + + diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..b5afbd7 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,46 @@ +import { createRouter, createWebHistory } from 'vue-router' +import { useUsersStore } from '@/stores/usersStore' +import Dashboard from '@/views/Dashboard.vue' +import Auth from '@/module/auth/routes' +import Uyeler from '@/module/uyeler/routes' +import Cekilisler from '@/module/cekilisler/routes' +import Kullanicilar from '@/module/kullanicilar/routes' +import SiteYonetimi from '@/module/site-yonetimi/routes' +import Settings from '@/module/ayarlar/routes' +import Logs from '@/module/sistem-gunlugu/routes' +import Profil from '@/module/Profil/routes' +import Muhasebe from '@/module/muhasebe/routes' + +const router = createRouter({ + sensitive: undefined, + strict: undefined, + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + ...Auth, + ...Uyeler, + ...Cekilisler, + ...Kullanicilar, + ...SiteYonetimi, + ...Settings, + ...Logs, + ...Profil, + ...Muhasebe, + { + path: '/', + name: 'Dashboard', + component: Dashboard, + meta: { + authRequired: true + } + } + ] +}) +router.beforeEach((to, from) => { + const usersStore = useUsersStore() + + if (to.meta.authRequired && !usersStore.userIsAuth && from.name !== 'Login') { + router.push('/login') + } +}) + +export default router diff --git a/src/stores/dataStore.ts b/src/stores/dataStore.ts new file mode 100644 index 0000000..4b7ac02 --- /dev/null +++ b/src/stores/dataStore.ts @@ -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('https://mpiapi.beyaz.net/') + const apiBase = ref('api/') + const panelData = reactive>({}) + const pageData = reactive>({}) + const panelDataChanged = ref(false) + const pageDataChanged = ref(false) + const pageDataUpdate = ref(false) + const isLoading = ref(false) + + const dataGet = async ( + api: string, + data: { + data?: any + params?: Record + headers?: Record + options?: Record + toast?: Record + full?: boolean + } = {} + ) => { + try { + const sendData: Record = {} + + 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 + headers?: Record + options?: Record + toast?: Record + full?: boolean + } = {} + ): Promise => { + try { + const sendData: Record = {} + 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 + headers?: Record + options?: Record + toast?: Record + full?: boolean + } = {} + ): Promise => { + try { + const sendData: Record = {} + 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 + headers?: Record + options?: Record + toast?: Record + full?: boolean + } = {} + ): Promise => { + try { + const sendData: Record = {} + + 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) => { + 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 + } +}) diff --git a/src/stores/dateStore.ts b/src/stores/dateStore.ts new file mode 100644 index 0000000..eb3c3df --- /dev/null +++ b/src/stores/dateStore.ts @@ -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 + } + } +}) diff --git a/src/stores/globalDataStore.ts b/src/stores/globalDataStore.ts new file mode 100644 index 0000000..bc4fb74 --- /dev/null +++ b/src/stores/globalDataStore.ts @@ -0,0 +1,12 @@ +import { defineStore } from 'pinia' +import { ref } from 'vue' + +export const useGlobalDataStore = defineStore('globalDataStore', () => { + const customerTips = ref[]>([]) + const ilList = ref[]>([]) + + return { + customerTips, + ilList + } +}) diff --git a/src/stores/pageStore.ts b/src/stores/pageStore.ts new file mode 100644 index 0000000..112ea83 --- /dev/null +++ b/src/stores/pageStore.ts @@ -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 + } +}) diff --git a/src/stores/previewStore.ts b/src/stores/previewStore.ts new file mode 100644 index 0000000..aabcce1 --- /dev/null +++ b/src/stores/previewStore.ts @@ -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 = `` + + 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 + } +}) diff --git a/src/stores/sehirlerStore.ts b/src/stores/sehirlerStore.ts new file mode 100644 index 0000000..a22a745 --- /dev/null +++ b/src/stores/sehirlerStore.ts @@ -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} +}) \ No newline at end of file diff --git a/src/stores/usersStore.ts b/src/stores/usersStore.ts new file mode 100644 index 0000000..873aa00 --- /dev/null +++ b/src/stores/usersStore.ts @@ -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>({ + USER: 'username', + TOKEN: 'token', + IS_AUTH: 'is_auth', + ROLES: 'roles', + ID: 'id', + STATUS: 'status', + POSITION: 'position', + DEPARTMENT: 'department' + }) + + const userId = ref(0) + const userApproveId = ref(null) + const userSubApproveId = ref(null) + const userName = ref('') + const userMail = ref('') + const userIsAuth = ref(false) + const userRoles = ref([]) + const userStatus = ref(null) + const userPosition = ref(null) + const userDepartment = ref(null) + const profilePhoto = ref('') + + 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(() => { + 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) => { + 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(() => { + return userRoles.value.includes('admin') + }) + + const isSuperAdmin = computed(() => { + return userRoles.value.includes('superadmin') + }) + + const isAccounting = computed(() => { + return userDepartment.value === 6 || userPosition.value === 5 + }) + + const isPanelUser = computed(() => { + return isAdmin.value || isSuperAdmin.value + }) + + const isAraciFirma = computed(() => { + return userRoles.value.includes('AraciFirma') + }) + + const isGercekKisi = computed(() => { + return userRoles.value.includes('gercekkisi') + }) + + const isTuzelKisi = computed(() => { + return userRoles.value.includes('tuzelkisi') + }) + + const isVakifDernek = computed(() => { + 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 + } +}) diff --git a/src/stores/validationStore.ts b/src/stores/validationStore.ts new file mode 100644 index 0000000..a60ab37 --- /dev/null +++ b/src/stores/validationStore.ts @@ -0,0 +1,142 @@ +import { defineStore } from 'pinia' +import { reactive } from 'vue' + +export const useValidationStore = defineStore('validationStore', () => { + const panelInvalidText = reactive>({}) + const pageInvalidText = reactive>({}) + + 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, + validData: Record, + 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 + } +}) diff --git a/src/types/global.d.ts b/src/types/global.d.ts new file mode 100644 index 0000000..62db45d --- /dev/null +++ b/src/types/global.d.ts @@ -0,0 +1,8 @@ +import 'jquery' + +declare global { + interface Window { + $: typeof jQuery; + jQuery: typeof jQuery; + } +} \ No newline at end of file diff --git a/src/types/jquery-blockui.d.ts b/src/types/jquery-blockui.d.ts new file mode 100644 index 0000000..31b0fe0 --- /dev/null +++ b/src/types/jquery-blockui.d.ts @@ -0,0 +1,11 @@ +// jQuery'nin mevcut türlerini genişletiyoruz +interface JQuery { + blockUI(options?: any): void; + unblockUI(): void; +} + +// Eğer $.blockUI gibi bir kullanım varsa: +interface JQueryStatic { + blockUI(options?: any): void; + unblockUI(): void; +} \ No newline at end of file diff --git a/src/types/summernote.d.ts b/src/types/summernote.d.ts new file mode 100644 index 0000000..d799807 --- /dev/null +++ b/src/types/summernote.d.ts @@ -0,0 +1,11 @@ +import 'jquery' + +declare module 'jquery' { + interface JQuery { + summernote(options?: any): JQuery; + summernote(method: 'code', content?: string): string | void; + summernote(method: 'destroy'): void; + summernote(method: 'reset'): void; + summernote(method: string, ...params: any[]): JQuery; + } +} \ No newline at end of file diff --git a/src/views/Dashboard.vue b/src/views/Dashboard.vue new file mode 100644 index 0000000..49b958c --- /dev/null +++ b/src/views/Dashboard.vue @@ -0,0 +1,106 @@ + + diff --git a/src/views/contents/NotificationContent.vue b/src/views/contents/NotificationContent.vue new file mode 100644 index 0000000..f9e3db3 --- /dev/null +++ b/src/views/contents/NotificationContent.vue @@ -0,0 +1,76 @@ + + \ No newline at end of file diff --git a/testgit.vue b/testgit.vue new file mode 100644 index 0000000..e69de29 diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..e14c754 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..c19040b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json", + } + ], + "compilerOptions": { + "types": ["jquery"], + "typeRoots": ["./node_modules/@types", "./types"] + }, + "include": [] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..f094063 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,19 @@ +{ + "extends": "@tsconfig/node20/tsconfig.json", + "include": [ + "vite.config.*", + "vitest.config.*", + "cypress.config.*", + "nightwatch.conf.*", + "playwright.config.*" + ], + "compilerOptions": { + "composite": true, + "noEmit": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + } +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..2fb21e9 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,15 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue(), vueJsx()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +}) diff --git a/vite.config.ts.timestamp-1724497578910-9dc151fd8a809.mjs b/vite.config.ts.timestamp-1724497578910-9dc151fd8a809.mjs new file mode 100644 index 0000000..4ecec64 --- /dev/null +++ b/vite.config.ts.timestamp-1724497578910-9dc151fd8a809.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///D:/VueJsPanel/node_modules/vite/dist/node/index.js"; +import vue from "file:///D:/VueJsPanel/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///D:/VueJsPanel/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///D:/VueJsPanel/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxWdWVKc1BhbmVsXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJEOlxcXFxWdWVKc1BhbmVsXFxcXHZpdGUuY29uZmlnLnRzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9EOi9WdWVKc1BhbmVsL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBNk4sU0FBUyxlQUFlLFdBQVc7QUFFaFEsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUprSCxJQUFNLDJDQUEyQztBQU90TCxJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/vite.config.ts.timestamp-1736860050012-f7a8518e14696.mjs b/vite.config.ts.timestamp-1736860050012-f7a8518e14696.mjs new file mode 100644 index 0000000..ecfdb32 --- /dev/null +++ b/vite.config.ts.timestamp-1736860050012-f7a8518e14696.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/vite/dist/node/index.js"; +import vue from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJaOlxcXFxNUElcXFxcS05PUFxcXFxQYW5lbFxcXFxQYW5lbC1WMS1WdWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIlo6XFxcXE1QSVxcXFxLTk9QXFxcXFBhbmVsXFxcXFBhbmVsLVYxLVZ1ZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vWjovTVBJL0tOT1AvUGFuZWwvUGFuZWwtVjEtVnVlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1IsU0FBUyxlQUFlLFdBQVc7QUFFelQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUowSixJQUFNLDJDQUEyQztBQU85TixJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/vite.config.ts.timestamp-1737034848261-9c66d765a0bcd.mjs b/vite.config.ts.timestamp-1737034848261-9c66d765a0bcd.mjs new file mode 100644 index 0000000..ecfdb32 --- /dev/null +++ b/vite.config.ts.timestamp-1737034848261-9c66d765a0bcd.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/vite/dist/node/index.js"; +import vue from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJaOlxcXFxNUElcXFxcS05PUFxcXFxQYW5lbFxcXFxQYW5lbC1WMS1WdWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIlo6XFxcXE1QSVxcXFxLTk9QXFxcXFBhbmVsXFxcXFBhbmVsLVYxLVZ1ZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vWjovTVBJL0tOT1AvUGFuZWwvUGFuZWwtVjEtVnVlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1IsU0FBUyxlQUFlLFdBQVc7QUFFelQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUowSixJQUFNLDJDQUEyQztBQU85TixJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/vite.config.ts.timestamp-1740663565871-31a60a3622a29.mjs b/vite.config.ts.timestamp-1740663565871-31a60a3622a29.mjs new file mode 100644 index 0000000..ecfdb32 --- /dev/null +++ b/vite.config.ts.timestamp-1740663565871-31a60a3622a29.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/vite/dist/node/index.js"; +import vue from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJaOlxcXFxNUElcXFxcS05PUFxcXFxQYW5lbFxcXFxQYW5lbC1WMS1WdWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIlo6XFxcXE1QSVxcXFxLTk9QXFxcXFBhbmVsXFxcXFBhbmVsLVYxLVZ1ZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vWjovTVBJL0tOT1AvUGFuZWwvUGFuZWwtVjEtVnVlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1IsU0FBUyxlQUFlLFdBQVc7QUFFelQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUowSixJQUFNLDJDQUEyQztBQU85TixJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/vite.config.ts.timestamp-1740678902772-85429dda46614.mjs b/vite.config.ts.timestamp-1740678902772-85429dda46614.mjs new file mode 100644 index 0000000..ecfdb32 --- /dev/null +++ b/vite.config.ts.timestamp-1740678902772-85429dda46614.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/vite/dist/node/index.js"; +import vue from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJaOlxcXFxNUElcXFxcS05PUFxcXFxQYW5lbFxcXFxQYW5lbC1WMS1WdWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIlo6XFxcXE1QSVxcXFxLTk9QXFxcXFBhbmVsXFxcXFBhbmVsLVYxLVZ1ZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vWjovTVBJL0tOT1AvUGFuZWwvUGFuZWwtVjEtVnVlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1IsU0FBUyxlQUFlLFdBQVc7QUFFelQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUowSixJQUFNLDJDQUEyQztBQU85TixJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/vite.config.ts.timestamp-1740678944298-ca288d349bd6e.mjs b/vite.config.ts.timestamp-1740678944298-ca288d349bd6e.mjs new file mode 100644 index 0000000..ecfdb32 --- /dev/null +++ b/vite.config.ts.timestamp-1740678944298-ca288d349bd6e.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/vite/dist/node/index.js"; +import vue from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJaOlxcXFxNUElcXFxcS05PUFxcXFxQYW5lbFxcXFxQYW5lbC1WMS1WdWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIlo6XFxcXE1QSVxcXFxLTk9QXFxcXFBhbmVsXFxcXFBhbmVsLVYxLVZ1ZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vWjovTVBJL0tOT1AvUGFuZWwvUGFuZWwtVjEtVnVlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1IsU0FBUyxlQUFlLFdBQVc7QUFFelQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUowSixJQUFNLDJDQUEyQztBQU85TixJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/vite.config.ts.timestamp-1740678983061-e1573956eee15.mjs b/vite.config.ts.timestamp-1740678983061-e1573956eee15.mjs new file mode 100644 index 0000000..ecfdb32 --- /dev/null +++ b/vite.config.ts.timestamp-1740678983061-e1573956eee15.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/vite/dist/node/index.js"; +import vue from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJaOlxcXFxNUElcXFxcS05PUFxcXFxQYW5lbFxcXFxQYW5lbC1WMS1WdWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIlo6XFxcXE1QSVxcXFxLTk9QXFxcXFBhbmVsXFxcXFBhbmVsLVYxLVZ1ZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vWjovTVBJL0tOT1AvUGFuZWwvUGFuZWwtVjEtVnVlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1IsU0FBUyxlQUFlLFdBQVc7QUFFelQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUowSixJQUFNLDJDQUEyQztBQU85TixJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/vite.config.ts.timestamp-1740744720379-1d5ca69cfb61c.mjs b/vite.config.ts.timestamp-1740744720379-1d5ca69cfb61c.mjs new file mode 100644 index 0000000..ecfdb32 --- /dev/null +++ b/vite.config.ts.timestamp-1740744720379-1d5ca69cfb61c.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/vite/dist/node/index.js"; +import vue from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJaOlxcXFxNUElcXFxcS05PUFxcXFxQYW5lbFxcXFxQYW5lbC1WMS1WdWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIlo6XFxcXE1QSVxcXFxLTk9QXFxcXFBhbmVsXFxcXFBhbmVsLVYxLVZ1ZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vWjovTVBJL0tOT1AvUGFuZWwvUGFuZWwtVjEtVnVlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1IsU0FBUyxlQUFlLFdBQVc7QUFFelQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUowSixJQUFNLDJDQUEyQztBQU85TixJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/vite.config.ts.timestamp-1740744823496-5abd4e8157c9.mjs b/vite.config.ts.timestamp-1740744823496-5abd4e8157c9.mjs new file mode 100644 index 0000000..ecfdb32 --- /dev/null +++ b/vite.config.ts.timestamp-1740744823496-5abd4e8157c9.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/vite/dist/node/index.js"; +import vue from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJaOlxcXFxNUElcXFxcS05PUFxcXFxQYW5lbFxcXFxQYW5lbC1WMS1WdWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIlo6XFxcXE1QSVxcXFxLTk9QXFxcXFBhbmVsXFxcXFBhbmVsLVYxLVZ1ZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vWjovTVBJL0tOT1AvUGFuZWwvUGFuZWwtVjEtVnVlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1IsU0FBUyxlQUFlLFdBQVc7QUFFelQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUowSixJQUFNLDJDQUEyQztBQU85TixJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/vite.config.ts.timestamp-1740750668421-f11e364db9668.mjs b/vite.config.ts.timestamp-1740750668421-f11e364db9668.mjs new file mode 100644 index 0000000..ecfdb32 --- /dev/null +++ b/vite.config.ts.timestamp-1740750668421-f11e364db9668.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/vite/dist/node/index.js"; +import vue from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJaOlxcXFxNUElcXFxcS05PUFxcXFxQYW5lbFxcXFxQYW5lbC1WMS1WdWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIlo6XFxcXE1QSVxcXFxLTk9QXFxcXFBhbmVsXFxcXFBhbmVsLVYxLVZ1ZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vWjovTVBJL0tOT1AvUGFuZWwvUGFuZWwtVjEtVnVlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1IsU0FBUyxlQUFlLFdBQVc7QUFFelQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUowSixJQUFNLDJDQUEyQztBQU85TixJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo= diff --git a/vite.config.ts.timestamp-1748348897981-b9ef15550a012.mjs b/vite.config.ts.timestamp-1748348897981-b9ef15550a012.mjs new file mode 100644 index 0000000..ecfdb32 --- /dev/null +++ b/vite.config.ts.timestamp-1748348897981-b9ef15550a012.mjs @@ -0,0 +1,21 @@ +// vite.config.ts +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/vite/dist/node/index.js"; +import vue from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue/dist/index.mjs"; +import vueJsx from "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/node_modules/@vitejs/plugin-vue-jsx/dist/index.mjs"; +var __vite_injected_original_import_meta_url = "file:///Z:/MPI/KNOP/Panel/Panel-V1-Vue/vite.config.ts"; +var vite_config_default = defineConfig({ + plugins: [ + vue(), + vueJsx() + ], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", __vite_injected_original_import_meta_url)) + } + } +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJaOlxcXFxNUElcXFxcS05PUFxcXFxQYW5lbFxcXFxQYW5lbC1WMS1WdWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIlo6XFxcXE1QSVxcXFxLTk9QXFxcXFBhbmVsXFxcXFBhbmVsLVYxLVZ1ZVxcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vWjovTVBJL0tOT1AvUGFuZWwvUGFuZWwtVjEtVnVlL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xyXG5pbXBvcnQgdnVlIGZyb20gJ0B2aXRlanMvcGx1Z2luLXZ1ZSdcclxuaW1wb3J0IHZ1ZUpzeCBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUtanN4J1xyXG5cclxuLy8gaHR0cHM6Ly92aXRlanMuZGV2L2NvbmZpZy9cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcclxuICBwbHVnaW5zOiBbXHJcbiAgICB2dWUoKSxcclxuICAgIHZ1ZUpzeCgpLFxyXG4gIF0sXHJcbiAgcmVzb2x2ZToge1xyXG4gICAgYWxpYXM6IHtcclxuICAgICAgJ0AnOiBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4vc3JjJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgIH1cclxuICB9XHJcbn0pXHJcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBc1IsU0FBUyxlQUFlLFdBQVc7QUFFelQsU0FBUyxvQkFBb0I7QUFDN0IsT0FBTyxTQUFTO0FBQ2hCLE9BQU8sWUFBWTtBQUowSixJQUFNLDJDQUEyQztBQU85TixJQUFPLHNCQUFRLGFBQWE7QUFBQSxFQUMxQixTQUFTO0FBQUEsSUFDUCxJQUFJO0FBQUEsSUFDSixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUztBQUFBLElBQ1AsT0FBTztBQUFBLE1BQ0wsS0FBSyxjQUFjLElBQUksSUFBSSxTQUFTLHdDQUFlLENBQUM7QUFBQSxJQUN0RDtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogW10KfQo=