ilk commit

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

View File

@ -0,0 +1,19 @@
<template>
<div class="form-content">
<div class="form-inner-content form-inner-content-left">
<form-kullanici-bilgileri />
</div>
<div class="form-inner-content form-inner-content-right" v-if="usersStore.userId === globalStore.selUser">
<form-sifre-degistir />
</div>
</div>
</template>
<script setup lang="ts">
import FormKullaniciBilgileri from './form/FormKullaniciBilgileri.vue'
import FormSifreDegistir from './form/FormSifreDegistir.vue'
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
</script>

View File

@ -0,0 +1,8 @@
<template>
<section class="section-list form-inner-content-left">
<form-kullanici-birimleri />
</section>
</template>
<script setup lang="ts">
import FormKullaniciBirimleri from './form/FormKullaniciBirimleri.vue'
</script>

View File

@ -0,0 +1,9 @@
<template>
<section class="section-list form-inner-content-left">
<form-kullanici-gorevleri />
</section>
</template>
<script setup lang="ts">
import AdminLayout from '@/layouts/AdminLayout.vue'
import FormKullaniciGorevleri from './form/FormKullaniciGorevleri.vue'
</script>

View File

@ -0,0 +1,38 @@
<template>
<section class="section-list">
<list-table-content
:tableHeader="tableHeader"
icon="users"
title="Kullanıcı Logları"
listText="Kayıt"
apiList="CekilisAtamaLog" />
</section>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useDateStore } from '@/stores/dateStore'
const dateStore = useDateStore()
const tableHeader = ref<Record<string, any>[]>([
{
name: 'tarih',
title: 'İşlem Tarihi',
compute: (v: Record<string, any>): string => {
return dateStore.dateFormat({ date: v.tarih })
},
sort: true,
style:{width:'20%'}
},
{
name: 'islemiYapan',
title: 'İşlemi yapan',
sort: true,
style:{width:'20%'}
},
{
name: 'islem',
title: 'İşlem',
sort: true
}
])
</script>

View File

@ -0,0 +1,217 @@
<template>
<div class="form-part form-title" v-if="isNew">
<div class="form-title-buttons">
<div class="button-c button-save" @click="SaveData">Kaydet</div>
<router-link class="button-c button-cancel" to="/kullanicilar/kullanici-liste">
Vazgeç
</router-link>
</div>
</div>
<div :class="['form-part', formChanged && !isNew ? 'changed' : '']">
<div class="form-part-title">
<h4>Kullanıcı Bilgileri</h4>
<div class="form-part-title-buttons"></div>
</div>
<div class="form-part-content" v-if="loaded">
<form-input
required
half
modelKey="gercekAdi"
v-model="formData.gercekAdi"
:invalidText="invalidTexts.gercekAdi"
label="Adı"
@keyup="OnKeyup" />
<form-input
required
half
modelKey="gercekSoyadi"
v-model="formData.gercekSoyadi"
:invalidText="invalidTexts.gercekSoyadi"
label="Soyadı"
@keyup="OnKeyup" />
<form-select
required
v-model="formData.kullaniciGoreviId"
:listData="appUserRoleStore.appUserRoles"
listVal="id"
listText="gorevAdi"
modelKey="kullaniciGoreviId"
label="Kullanıcının Görevi"
:invalidText="invalidTexts.kullaniciGoreviId"
@change="OnKeyup" />
<form-select
required
v-model="formData.birimId"
:listData="appUserUnitStore.appUserUnits"
listVal="id"
listText="birimAdi"
modelKey="birimId"
label="Kullanıcının Birimi"
:invalidText="invalidTexts.birimId"
@change="OnKeyup" />
<form-input
required
half
modelKey="telefonNumarasi"
v-model="formData.telefonNumarasi"
:invalidText="invalidTexts.telefonNumarasi"
label="Telefon"
placeholder="5554443322"
maxlength="10"
minlength="10"
@keyup="OnKeyup" />
<form-input
required
half
modelKey="email"
v-model="formData.email"
:invalidText="invalidTexts.email"
label="Mail"
placeholder="eposta@alanadi.com"
type="email" />
<div class="form-item" v-if="formChanged && !isNew">
<button class="button-c button-save" @click="SaveData">Kaydet</button>
<button class="button-c button-cancel" @click="CancelSave">Vazgeç</button>
</div>
</div>
</div>
<div class="form-part form-title" v-if="isNew">
<div class="form-title-buttons">
<div class="button-c button-save" @click="SaveData">Kaydet</div>
<router-link class="button-c button-cancel" to="/kullanicilar/kullanici-liste">
Vazgeç
</router-link>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, reactive, onBeforeMount } from 'vue'
import { useRoute } from 'vue-router'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { useAppUserUnitStore } from '../../stores/appUserUnitStore'
const appUserUnitStore = useAppUserUnitStore()
import { useAppUserRoleStore } from '../../stores/appUserRoleStore'
const appUserRoleStore = useAppUserRoleStore()
import { useAppUserUnitService } from '../../service/appUserUnitService'
const appUserUnitService = useAppUserUnitService()
import { useAppUserRoleService } from '../../service/appUserRoleService'
const appUserRoleService = useAppUserRoleService()
import { useToastStore } from '@/components/global/toastStore'
const toastStore = useToastStore()
import router from '@/router/'
const route = useRoute()
const isNew = ref<boolean>(true)
if (route.name === 'KullaniciDetay') isNew.value = false
const loaded = ref<boolean>(false)
const formChanged = ref<boolean>(false)
const formData = reactive<Record<string, any>>({
gercekAdi: '',
gercekSoyadi: '',
telefonNumarasi: '',
email: '',
kullaniciGoreviId: '',
birimId: '',
basvuruTipId: 24,
kvkk: true,
uyelikSozlesmesi: true
})
const isFormValid = ref<boolean>(true)
const startData = reactive<Record<string, any>>(Object.assign({}, formData))
const invalidTexts = ref<Record<string, any>>({})
const safeData = reactive<Record<string, any>>({})
const OnKeyup = () => {
formChanged.value = true
}
const IsFieldEmpty = (field: string, text: string) => {
if (validationStore.checkEmpty(formData[field]) || formData[field] === 0) {
invalidTexts.value[field] = text
isFormValid.value = false
} else {
delete invalidTexts.value[field]
}
}
const FormCheck = (): boolean => {
IsFieldEmpty('gercekAdi', 'Kullanıcının adı boş bırakılamaz.')
IsFieldEmpty('gercekSoyadi', 'Kullanıcının soyadı boş bırakılamaz.')
IsFieldEmpty('telefonNumarasi', 'Kullanıcının telefonunu yazmalısınız')
IsFieldEmpty('email', 'Kullanıcının mail adresini yazmalısınız')
IsFieldEmpty('kullaniciGoreviId', 'Kullanıcının görevini seçmelisiniz')
IsFieldEmpty('birimId', 'Kullanıcının birimini seçmelisiniz')
return isFormValid.value
}
const GetData = async () => {
let data = await dataStore.dataGet('Auth/userbyuserid/' + globalStore.selUser)
if (data !== 'errorfalse') {
Object.assign(formData, data)
Object.assign(safeData, data)
setTimeout(() => {
loaded.value = true
}, 30)
}
}
const SaveData = async () => {
if (FormCheck()) {
let res: any
formData.basvuruTipId = formData.kullaniciGoreviId === 1 ? 19:24
if (isNew.value) {
res = await dataStore.dataPost('Auth/register/', {
data: formData
})
} else {
const inData: Record<string, any> = {}
const startProps = Object.keys(startData)
Object.keys(formData).forEach((key, i) => {
for (let i = 0; i <= startProps.length; i++) {
if (key === startProps[i]) inData[key] = formData[key]
}
})
inData.id = formData.id
inData.basvuruTipId = inData.kullaniciGoreviId === 1 ? 19:24
res = await dataStore.dataPut('Auth/Guncelleme/' + formData.id, {
data: inData
})
}
if (res !== 'errorfalse') {
if (isNew.value) toastStore.AddToast('Kullanıcı başarıyla kaydedildi', 'success', 5000)
else toastStore.AddToast('Başarıyla kaydedildi', 'success', 5000)
formChanged.value = false
loaded.value = false
globalStore.selUser = res.user.id
if (isNew.value) router.push('/kullanicilar/kullanici-liste')
else GetData()
isNew.value = false
}
} else {
isFormValid.value = true
}
}
const CancelSave = () => {
Object.assign(formData, safeData)
formChanged.value = false
}
onBeforeMount(async () => {
await appUserUnitService.GetAppUserUnitList()
await appUserRoleService.GetAppUserRoleList()
if (!isNew.value) await GetData()
else loaded.value = true
})
</script>

View File

@ -0,0 +1,55 @@
<template>
<list-table-content
:tableHeader="tableHeader"
apiList="Birim"
icon="draws"
listText="Birim"
title="Kullanıcı Birimleri"
:addAction="NewBirim"
:rowAction="EditBirim"
v-model:refresh="appUserUnitStore.refreshList" />
<panel-wrapper
v-if="appUserUnitStore.unitPanel"
v-model="appUserUnitStore.unitPanel"
:panel-title="appUserUnitStore.isUpdate ? 'Birim Düzenle' : 'Birim Ekle'">
<template #panelContent>
<panel-kullanici-birim />
</template>
<template #footerButton>
<div class="button-c button-save" @click="appUserUnitService.SaveUnit">
{{ appUserUnitStore.isUpdate ? 'Kaydet' : 'Ekle' }}
</div>
</template>
</panel-wrapper>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useAppUserUnitStore } from '../../stores/appUserUnitStore'
const appUserUnitStore = useAppUserUnitStore()
import { useAppUserUnitService } from '../../service/appUserUnitService'
const appUserUnitService = useAppUserUnitService()
import PanelWrapper from '@/components/PanelWrapper.vue'
import PanelKullaniciBirim from '../panel/PanelKullaniciBirim.vue'
const tableHeader = ref<Record<string, any>[]>([
{
name: 'birimAdi',
title: 'Kullanıcı Birimleri',
sort: true
}
])
const NewBirim = () => {
appUserUnitStore.ResetForm()
appUserUnitStore.isUpdate = false
appUserUnitStore.unitPanel = true
}
const EditBirim = (d: Record<string, any>) => {
Object.assign(appUserUnitStore.appUserUnitForm, d)
appUserUnitStore.unitPanel = true
appUserUnitStore.isUpdate = true
}
</script>

View File

@ -0,0 +1,53 @@
<template>
<list-table-content
:tableHeader="tableHeader"
apiList="KullaniciGorevi"
icon="draws"
listText="Görev"
title="Kullanıcı Görevleri"
:addAction="NewGorev"
:rowAction="EditGorev"
v-model:refresh="appUserRoleStore.refreshList" />
<panel-wrapper
v-if="appUserRoleStore.rolePanel"
v-model="appUserRoleStore.rolePanel"
:panel-title="appUserRoleStore.isUpdate ? 'Görevi Düzenle' : 'Görev Ekle'">
<template #panelContent>
<panel-kullanici-gorev />
</template>
<template #footerButton>
<div class="button-c button-save" @click="appUserRoleService.SaveRole">
{{ appUserRoleStore.isUpdate ? 'Kaydet' : 'Ekle' }}
</div>
</template>
</panel-wrapper>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useAppUserRoleStore } from '../../stores/appUserRoleStore'
const appUserRoleStore = useAppUserRoleStore()
import { useAppUserRoleService } from '../../service/appUserRoleService'
const appUserRoleService = useAppUserRoleService()
import PanelWrapper from '@/components/PanelWrapper.vue'
import PanelKullaniciGorev from '../panel/PanelKullaniciGorev.vue'
const tableHeader = ref<Record<string, any>[]>([
{
name: 'gorevAdi',
title: 'Kullanıcı Görevleri',
sort: true
}
])
const NewGorev = () => {
appUserRoleStore.ResetForm()
appUserRoleStore.rolePanel = true
}
const EditGorev = (d: Record<string, any>) => {
appUserRoleStore.isUpdate = true
Object.assign(appUserRoleStore.appUserRoleForm, d)
appUserRoleStore.rolePanel = true
}
</script>

View File

@ -0,0 +1,20 @@
<template>
<list-table-content
:tableHeader="tableHeader"
apiList="Auth/rolelistesi"
:search="false"
icon="draws"
listText="Rol"
title="Kullanıcı Rolleri" />
</template>
<script setup lang="ts">
import { ref } from 'vue'
const tableHeader = ref<Record<string,any>[]>([
{
name: 'baslik',
title: 'Kullanıcı Rolleri',
sort: true
}
])
</script>

View File

@ -0,0 +1,121 @@
<template>
<div :class="['form-part', formChanged ? 'changed' : '']">
<div class="form-part-title">
<h4>Şifre Değiştir</h4>
<div class="form-part-title-buttons"></div>
</div>
<div class="form-part-content">
<form-input
required
type="password"
modelKey="currentPassword"
v-model="formData.currentPassword"
:invalidText="invalidTexts.currentPassword"
label="Kullandığınız Şifre"
@keyup="OnKeyup" />
<form-input
required
type="password"
modelKey="newPassword"
v-model="formData.newPassword"
:invalidText="invalidTexts.newPassword"
label="Yeni Şifre"
@keyup="OnKeyup"
description="Yeni şifreniz en az 6 karakter olmalıdır"
minlength="6"/>
<form-input
required
type="password"
modelKey="confirmNewPassword"
v-model="formData.confirmNewPassword"
:invalidText="invalidTexts.confirmNewPassword"
label="Yeni Şifre Tekrar"
@keyup="OnKeyup" />
<div class="form-item" v-if="formChanged">
<button class="button-c button-save" @click="SaveData">Kaydet</button>
<button class="button-c button-cancel" @click="CancelSave">Vazgeç</button>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useDataStore } from '@/stores/dataStore'
const dataStore = useDataStore()
import { useValidationStore } from '@/stores/validationStore'
const validationStore = useValidationStore()
import { useUsersStore } from '@/stores/usersStore'
const usersStore = useUsersStore()
const formChanged = ref<boolean>(false)
const formData = reactive<Record<string, any>>({
emailAddress: usersStore.userMail,
currentPassword: '',
newPassword: '',
confirmNewPassword: ''
})
const isFormValid = ref<boolean>(true)
const invalidTexts = ref<Record<string, any>>({})
const safeData = reactive<Record<string, any>>(Object.assign({}, formData))
const OnKeyup = () => {
formChanged.value = true
}
const IsFieldEmpty = (field: string, text: string) => {
if (validationStore.checkEmpty(formData[field]) || formData[field] === 0) {
invalidTexts.value[field] = text
isFormValid.value = false
} else {
delete invalidTexts.value[field]
}
}
const FormCheck = (): boolean => {
IsFieldEmpty('currentPassword', 'Lütfen şu an kullandığınız şifreyi giriniz.')
IsFieldEmpty('newPassword', 'Yeni bir şifre belirlemelisiniz')
IsFieldEmpty('confirmNewPassword', 'Yeni şifrenizin tekrarını girmelisiniz')
if (!validationStore.checkEmpty(formData.confirmNewPassword)) {
if (formData.newPassword !== formData.confirmNewPassword) {
invalidTexts.value.confirmNewPassword =
'Belirlediğinzi şifreden farklı bir şifre yazdınız. Lütfen tekrar giriniz.'
isFormValid.value = false
} else {
delete invalidTexts.value.confirmNewPassword
}
}
if (!validationStore.checkEmpty(formData.newPassword)) {
if (formData.newPassword <6) {
invalidTexts.value.confirmNewPassword =
'Belirlediğinzi şifre en az 6 karakter olmalıdır.'
isFormValid.value = false
} else {
delete invalidTexts.value.confirmNewPassword
}
}
formData.emailAddress = usersStore.userMail
return isFormValid.value
}
const SaveData = async () => {
if (FormCheck()) {
let res: any
res = await dataStore.dataPost('Auth/updatepassword/', {
data: formData
})
if (res !== 'errorfalse') {
Object.assign(formData,safeData)
formChanged.value = false
}
} else {
isFormValid.value = true
}
}
const CancelSave = () => {
Object.assign(formData, safeData)
formChanged.value = false
}
</script>

View File

@ -0,0 +1,14 @@
<template>
<form-input
v-model="appUserUnitStore.appUserUnitForm.birimAdi"
label="Birim Adı"
modelKey="birimAdi"
minlength="2"
:invalidText="appUserUnitValidationStore.invalidTexts.birimAdi" />
</template>
<script setup lang="ts">
import {useAppUserUnitStore} from '../../stores/appUserUnitStore'
const appUserUnitStore = useAppUserUnitStore()
import {useAppUserUnitValidationStore} from '../../validation/appUserUnitValidationStore'
const appUserUnitValidationStore = useAppUserUnitValidationStore()
</script>

View File

@ -0,0 +1,14 @@
<template>
<form-input
v-model="appUserRoleStore.appUserRoleForm.gorevAdi"
label="Görev Adı"
modelKey="gorevAdi"
minlength="2"
:invalidText="appUserRoleValidationStore.invalidTexts.gorevAdi" />
</template>
<script setup lang="ts">
import { useAppUserRoleStore } from '../../stores/appUserRoleStore'
const appUserRoleStore = useAppUserRoleStore()
import { useAppUserRoleValidationStore } from '../../validation/appUserRoleValidationStore'
const appUserRoleValidationStore = useAppUserRoleValidationStore()
</script>

View File

@ -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
]

View File

@ -0,0 +1,10 @@
import KullaniciAyarlari from '../views/KullaniciAyarlari.vue'
export default {
path: '/kullanicilar/kullanici-ayarlari',
name: 'KullaniciAyarlari',
component: KullaniciAyarlari,
meta: {
authRequired: true
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
})

View File

@ -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 {
}
})

View File

@ -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
}
})

View File

@ -0,0 +1,30 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
export const useAppUserRoleStore = defineStore('appUserRoleStore', () => {
const appUserRoles = ref<Record<string, any>[]>([])
const appUserRoleBaseForm = reactive<Record<string, any>>({
gorevAdi: '',
appUsers: []
})
const appUserRoleForm = reactive<Record<string, any>>({})
const appUserRoleSafeForm = reactive<Record<string, any>>({})
const isUpdate = ref<boolean>(false)
const refreshList = ref<boolean>(false)
const rolePanel = ref<boolean>(false)
const ResetForm = () => {
Object.assign(appUserRoleForm, appUserRoleBaseForm)
}
return {
appUserRoles,
appUserRoleBaseForm,
appUserRoleForm,
appUserRoleSafeForm,
isUpdate,
refreshList,
rolePanel,
ResetForm
}
})

View File

@ -0,0 +1,10 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useAppUserStore = defineStore('appUserStore', () => {
const selectedAppUser = ref<number>(0)
return {
selectedAppUser
}
})

View File

@ -0,0 +1,30 @@
import { defineStore } from 'pinia'
import { ref, reactive } from 'vue'
export const useAppUserUnitStore = defineStore('appUserUnitStore', () => {
const appUserUnits = ref<Record<string, any>[]>([])
const appUserUnitBaseForm = reactive<Record<string, any>>({
birimAdi: '',
appUsers: []
})
const appUserUnitForm = reactive<Record<string, any>>({})
const appUserUnitSafeForm = reactive<Record<string, any>>({})
const isUpdate = ref<boolean>(false)
const refreshList = ref<boolean>(false)
const unitPanel = ref<boolean>(false)
const ResetForm = () => {
Object.assign(appUserUnitForm, appUserUnitBaseForm)
}
return {
appUserUnits,
appUserUnitBaseForm,
appUserUnitForm,
appUserUnitSafeForm,
isUpdate,
refreshList,
unitPanel,
ResetForm
}
})

View File

@ -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<boolean>(false)
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
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
}
}
)

View File

@ -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<boolean>(false)
const isFormValid = ref<boolean>(true)
const invalidTexts = reactive<Record<string, any>>({})
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
}
}
)

View File

@ -0,0 +1,30 @@
<template>
<AdminLayout>
<Breadcrumb currentPageText="Kullanıcı Detay" />
<tabs :tabList="tabList">
<template #birimlistesi>
<tab-kullanici-birimleri />
</template>
<template #gorevlistesi>
<tab-kullanici-gorevleri />
</template>
</tabs>
</AdminLayout>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useRoute } from 'vue-router'
const route = useRoute()
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import AdminLayout from '@/layouts/AdminLayout.vue'
import TabKullaniciGorevleri from '../components/TabKullaniciGorevleri.vue'
import TabKullaniciBirimleri from '../components/TabKullaniciBirimleri.vue'
if (globalStore.selUser === 0) globalStore.selUser = Number(route.params.kullaniciId)
const tabList = ref<Record<string, any>[]>([
{ text: 'Birim Listesi', id: 'birimlistesi' },
{ text: 'Görev Listesi', id: 'gorevlistesi' }
])
</script>

View File

@ -0,0 +1,35 @@
<template>
<AdminLayout>
<Breadcrumb currentPageText="Kullanıcı Detay" />
<tabs :tabList="tabList">
<template #kullanicibilgileri>
<tab-kullanici-bilgileri />
</template>
<template #yetkilioldugupiyangolar>
<tab-kullanici-yetkili-piyangolar />
</template>
<template #kullaniciloglari>
<tab-kullanici-loglari />
</template>
</tabs>
</AdminLayout>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { useRoute } from 'vue-router'
const route = useRoute()
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import AdminLayout from '@/layouts/AdminLayout.vue'
import TabKullaniciBilgileri from '../components/TabKullaniciBilgileri.vue'
import TabKullaniciYetkiliPiyangolar from '../components/TabKullaniciYetkiliPiyangolar.vue'
import TabKullaniciLoglari from '../components/TabKullaniciLoglari.vue'
if (globalStore.selUser === 0) globalStore.selUser = Number(route.params.kullaniciId)
const tabList = ref<Record<string, any>[]>([
{ text: 'Kullanıcı Bilgileri', id: 'kullanicibilgileri' },
{ text: 'Yetkili Olduğu Piyangolar', id: 'yetkilioldugupiyangolar' },
{ text: 'Kullanıcı Logları', id: 'kullaniciloglari' }
])
</script>

View File

@ -0,0 +1,100 @@
<template>
<AdminLayout>
<Breadcrumb current-page-text="Kullanıcılar Listesi" />
<section class="section-list">
<list-table-content
v-if="loaded"
:tableHeader="tableHeader"
:rowAction="rwAction"
icon="customers"
title="Kullanıcılar"
listText="Kullanıcı"
addRoute="yeni-kullanici"
apiList="Auth/kullaniciList"
apiText="Kullanıcı Listesi" />
</section>
</AdminLayout>
</template>
<script setup lang="ts">
import { ref, onBeforeMount, computed } from 'vue'
import AdminLayout from '@/layouts/AdminLayout.vue'
import { useGlobalStore } from '@/stores/globalStore'
const globalStore = useGlobalStore()
import { useAppUserUnitStore } from '../stores/appUserUnitStore'
const appUserUnitStore = useAppUserUnitStore()
import { useAppUserRoleStore } from '../stores/appUserRoleStore'
const appUserRoleStore = useAppUserRoleStore()
import { useAppUserUnitService } from '../service/appUserUnitService'
const appUserUnitService = useAppUserUnitService()
import { useAppUserRoleService } from '../service/appUserRoleService'
const appUserRoleService = useAppUserRoleService()
import router from '@/router'
const loaded = ref<boolean>(false)
const userUnitList = computed<Record<string, any>[]>(() => {
return appUserUnitStore.appUserUnits
})
const userRoleList = computed<Record<string, any>[]>(() => {
return appUserRoleStore.appUserRoles
})
const tableHeader = ref<Record<string, any>[]>([
{
name: 'ad',
title: 'Ad',
sort: true
},
{
name: 'soyad',
title: 'Soyad',
sort: true
},
{
name: 'calistigiBirim',
title: 'Çalıştığı Birim',
sort: true,
filter: {
type: 'select',
data: userUnitList,
listVal: 'id',
listText: 'birimAdi',
filterId: 'birimId'
}
},
{
name: 'kullaniciGorevi',
title: 'Görevi',
sort: true,
filter: {
type: 'select',
data: userRoleList,
listVal: 'id',
listText: 'gorevAdi',
filterId: 'kullaniciGorevId'
}
},
{
name: 'email',
title: 'E-posta',
sort: true
},
{
name: 'telefonNumarasi',
title: 'Telefon',
sort: true
}
])
const rwAction = (row: any) => {
globalStore.selUser = row.id
router.push('detay/' + row.id)
}
onBeforeMount(async () => {
await appUserUnitService.GetAppUserUnitList()
await appUserRoleService.GetAppUserRoleList()
loaded.value = true
})
</script>

View File

@ -0,0 +1,12 @@
<template>
<AdminLayout>
<Breadcrumb current-page-text="Kullanıcı Rolleri" />
<section class="section-list form-inner-content-left">
<form-kullanici-rolleri />
</section>
</AdminLayout>
</template>
<script setup lang="ts">
import AdminLayout from '@/layouts/AdminLayout.vue'
import FormKullaniciRolleri from '../components/form/FormKullaniciRolleri.vue'
</script>

View File

@ -0,0 +1,14 @@
<template>
<AdminLayout>
<Breadcrumb current-page-text="Yeni Kullanici" />
<div class="form-content">
<div class="form-inner-content form-inner-content-left">
<form-kullanici-bilgileri />
</div>
</div>
</AdminLayout>
</template>
<script setup lang="ts">
import AdminLayout from '@/layouts/AdminLayout.vue'
import FormKullaniciBilgileri from '../components/form/FormKullaniciBilgileri.vue'
</script>